update
parent
bfdedcdd88
commit
bd6174731d
|
@ -0,0 +1,10 @@
|
|||
[Dolphin]
|
||||
PreviewsShown=false
|
||||
SortRole=type
|
||||
Timestamp=2023,11,21,17,36,10.812
|
||||
Version=4
|
||||
ViewMode=1
|
||||
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_type,CustomizedDetails
|
||||
|
||||
[Settings]
|
||||
HiddenFilesShown=true
|
|
@ -77,3 +77,6 @@ crashlytics-build.properties
|
|||
|
||||
# jetbrains
|
||||
/.idea
|
||||
|
||||
*.zip
|
||||
Assets/TerrainSampleAssets/
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 09937958c0b70e54497dbecdc3a91049
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b4c60c3e555fd5d43b62555535d91f25
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 63ea158c6dd5f0b4280145b7c876b5d4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 28de3be613be9f84598eb0abf4dac20f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,317 @@
|
|||
Shader "Ciconia Studio/CS_Standard/Builtin/Lite/Standard (Specular setup)/Cutout"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[Space(35)][Header(Surface Options )]
|
||||
[Space(15)][Enum(Off,2,On,0)] _Cull("Double Sided", Float) = 0 //"Back"
|
||||
[Enum(Off,0,On,1)] _ZWrite("ZWrite", Float) = 1.0 //"On"
|
||||
[Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4 //"LessEqual"
|
||||
|
||||
[Space(35)][Header(Main Properties )][Space(15)]_GlobalXYTilingXYZWOffsetXY("Global --> XY(TilingXY) - ZW(OffsetXY)", Vector) = (1,1,0,0)
|
||||
_Color("Color", Color) = (1,1,1,0)
|
||||
[Toggle]_InvertABaseColor("Invert Alpha", Float) = 0
|
||||
_MainTex("Base Color", 2D) = "white" {}
|
||||
_Saturation("Saturation", Float) = 0
|
||||
_Brightness("Brightness", Range( 1 , 8)) = 1
|
||||
[Space(35)]_BumpMap("Normal Map", 2D) = "bump" {}
|
||||
_BumpScale("Normal Intensity", Float) = 0.3
|
||||
[Space(35)]_SpecularColor("Specular Color", Color) = (1,1,1,0)
|
||||
_SpecGlossMap("Specular Map -->(Smoothness A)", 2D) = "white" {}
|
||||
_SpecularIntensity("Specular Intensity", Range( 0 , 2)) = 0.2
|
||||
_Glossiness("Smoothness", Range( 0 , 2)) = 0.5
|
||||
[Space(10)][KeywordEnum(SpecularAlpha,BaseColorAlpha)] _Source("Source", Float) = 0
|
||||
[Space(35)]_ParallaxMap("Height Map", 2D) = "white" {}
|
||||
_Parallax("Height Scale", Range( -0.1 , 0.1)) = 0
|
||||
[Space(35)]_OcclusionMap("Ambient Occlusion Map", 2D) = "white" {}
|
||||
_AoIntensity("Ao Intensity", Range( 0 , 2)) = 1
|
||||
[HDR][Space(45)]_EmissionColor("Emission Color", Color) = (0,0,0,0)
|
||||
_EmissionMap("Emission Map", 2D) = "white" {}
|
||||
_EmissionIntensity("Intensity", Range( 0 , 2)) = 1
|
||||
[Space(35)][Header(Mask Properties)][Toggle]_EnableDetailMask("Enable", Float) = 0
|
||||
[Space(15)][Toggle]_VisualizeMask("Visualize Mask", Float) = 0
|
||||
[Toggle]_SourceMask("Source - Use BaseColorAlpha", Float) = 0
|
||||
[Space(15)][Toggle]_InvertMask("Invert Mask", Float) = 0
|
||||
_DetailMask("Detail Mask", 2D) = "black" {}
|
||||
_IntensityMask("Intensity", Range( 0 , 1)) = 1
|
||||
[Space(15)]_ContrastDetailMap("Contrast", Float) = 0
|
||||
_SpreadDetailMap("Spread", Float) = 0
|
||||
[Space(35)][Header(Detail Properties)][Space(15)]_DetailColor("Color -->(Smoothness Intensity A)", Color) = (1,1,1,0)
|
||||
_DetailAlbedoMap("Base Color -->(Smoothness A)", 2D) = "white" {}
|
||||
_DetailSaturation("Saturation", Float) = 0
|
||||
_DetailBrightness("Brightness", Range( 1 , 8)) = 1
|
||||
[Space(35)][Toggle]_BlendMainNormal("Blend Main Normal", Float) = 1
|
||||
_DetailNormalMap("Normal Map", 2D) = "bump" {}
|
||||
_DetailNormalMapScale("Scale", Float) = 0.3
|
||||
[HideInInspector] _texcoord( "", 2D ) = "white" {}
|
||||
[Space(35)][Header(Cutout Properties)][Space(15)][Toggle]_InvertCutout("Invert ", Float) = 0
|
||||
[Toggle]_UseBaseColorAlpha("Use BaseColor Alpha", Float) = 0
|
||||
_CutoutMap("Cutout Mask", 2D) = "white" {}
|
||||
[Space(10)]_IntensityCutoutMap("Alpha Cutoff", Range( 0 , 1)) = 0.5
|
||||
[HideInInspector] __dirty( "", Int ) = 1
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags{ "RenderType" = "Opaque" "Queue" = "AlphaTest+0" "IsEmissive" = "true" }
|
||||
Cull[_Cull]
|
||||
ZWrite[_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
CGINCLUDE
|
||||
#include "UnityCG.cginc"
|
||||
#include "UnityStandardUtils.cginc"
|
||||
#include "UnityPBSLighting.cginc"
|
||||
#include "Lighting.cginc"
|
||||
#pragma target 3.0
|
||||
#pragma shader_feature_local _SOURCE_SPECULARALPHA _SOURCE_BASECOLORALPHA
|
||||
#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 viewDir;
|
||||
INTERNAL_DATA
|
||||
half ASEVFace : VFACE;
|
||||
};
|
||||
|
||||
uniform float _BlendMainNormal;
|
||||
uniform sampler2D _BumpMap;
|
||||
uniform float4 _BumpMap_ST;
|
||||
uniform float4 _GlobalXYTilingXYZWOffsetXY;
|
||||
uniform sampler2D _ParallaxMap;
|
||||
uniform float4 _ParallaxMap_ST;
|
||||
uniform float _Parallax;
|
||||
uniform float _BumpScale;
|
||||
uniform sampler2D _DetailNormalMap;
|
||||
uniform float4 _DetailNormalMap_ST;
|
||||
uniform float _DetailNormalMapScale;
|
||||
uniform float _EnableDetailMask;
|
||||
uniform float _ContrastDetailMap;
|
||||
uniform float _SourceMask;
|
||||
uniform float _InvertMask;
|
||||
uniform sampler2D _DetailMask;
|
||||
uniform float4 _DetailMask_ST;
|
||||
uniform float _InvertABaseColor;
|
||||
uniform sampler2D _MainTex;
|
||||
uniform float4 _MainTex_ST;
|
||||
uniform float _SpreadDetailMap;
|
||||
uniform float _IntensityMask;
|
||||
uniform float _VisualizeMask;
|
||||
uniform float _Brightness;
|
||||
uniform float4 _Color;
|
||||
uniform float _Saturation;
|
||||
uniform float _DetailBrightness;
|
||||
uniform float4 _DetailColor;
|
||||
uniform sampler2D _DetailAlbedoMap;
|
||||
uniform float4 _DetailAlbedoMap_ST;
|
||||
uniform float _DetailSaturation;
|
||||
uniform float4 _EmissionColor;
|
||||
uniform sampler2D _EmissionMap;
|
||||
uniform float4 _EmissionMap_ST;
|
||||
uniform float _EmissionIntensity;
|
||||
uniform float4 _SpecularColor;
|
||||
uniform sampler2D _SpecGlossMap;
|
||||
uniform float4 _SpecGlossMap_ST;
|
||||
uniform float _SpecularIntensity;
|
||||
uniform float _Glossiness;
|
||||
uniform sampler2D _OcclusionMap;
|
||||
uniform float4 _OcclusionMap_ST;
|
||||
uniform float _AoIntensity;
|
||||
uniform float _InvertCutout;
|
||||
uniform float _UseBaseColorAlpha;
|
||||
uniform sampler2D _CutoutMap;
|
||||
uniform float4 _CutoutMap_ST;
|
||||
uniform float _IntensityCutoutMap;
|
||||
|
||||
|
||||
float4 CalculateContrast( float contrastValue, float4 colorTarget )
|
||||
{
|
||||
float t = 0.5 * ( 1.0 - contrastValue );
|
||||
return mul( float4x4( contrastValue,0,0,t, 0,contrastValue,0,t, 0,0,contrastValue,t, 0,0,0,1 ), colorTarget );
|
||||
}
|
||||
|
||||
void surf( Input i , inout SurfaceOutputStandardSpecular o )
|
||||
{
|
||||
float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw;
|
||||
float2 break26_g500 = uv_BumpMap;
|
||||
float GlobalTilingX11 = ( _GlobalXYTilingXYZWOffsetXY.x - 1.0 );
|
||||
float GlobalTilingY8 = ( _GlobalXYTilingXYZWOffsetXY.y - 1.0 );
|
||||
float2 appendResult14_g500 = (float2(( break26_g500.x * GlobalTilingX11 ) , ( break26_g500.y * GlobalTilingY8 )));
|
||||
float GlobalOffsetX10 = _GlobalXYTilingXYZWOffsetXY.z;
|
||||
float GlobalOffsetY9 = _GlobalXYTilingXYZWOffsetXY.w;
|
||||
float2 appendResult13_g500 = (float2(( break26_g500.x + GlobalOffsetX10 ) , ( break26_g500.y + GlobalOffsetY9 )));
|
||||
float2 uv_ParallaxMap = i.uv_texcoord * _ParallaxMap_ST.xy + _ParallaxMap_ST.zw;
|
||||
float2 break26_g490 = uv_ParallaxMap;
|
||||
float2 appendResult14_g490 = (float2(( break26_g490.x * GlobalTilingX11 ) , ( break26_g490.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g490 = (float2(( break26_g490.x + GlobalOffsetX10 ) , ( break26_g490.y + GlobalOffsetY9 )));
|
||||
float4 temp_cast_0 = (tex2D( _ParallaxMap, ( appendResult14_g490 + appendResult13_g490 ) ).g).xxxx;
|
||||
float2 paralaxOffset36_g489 = ParallaxOffset( temp_cast_0.x , _Parallax , i.viewDir );
|
||||
float2 switchResult47_g489 = (((i.ASEVFace>0)?(paralaxOffset36_g489):(0.0)));
|
||||
float2 Parallaxe380 = switchResult47_g489;
|
||||
float3 temp_output_356_0 = UnpackScaleNormal( tex2D( _BumpMap, ( ( appendResult14_g500 + appendResult13_g500 ) + Parallaxe380 ) ), _BumpScale );
|
||||
float2 uv_DetailNormalMap = i.uv_texcoord * _DetailNormalMap_ST.xy + _DetailNormalMap_ST.zw;
|
||||
float3 NormalDetail155 = UnpackScaleNormal( tex2D( _DetailNormalMap, uv_DetailNormalMap ), _DetailNormalMapScale );
|
||||
float4 temp_cast_2 = (0.0).xxxx;
|
||||
float2 uv_DetailMask = i.uv_texcoord * _DetailMask_ST.xy + _DetailMask_ST.zw;
|
||||
float4 tex2DNode27_g496 = tex2D( _DetailMask, uv_DetailMask );
|
||||
float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw;
|
||||
float2 break26_g495 = uv_MainTex;
|
||||
float2 appendResult14_g495 = (float2(( break26_g495.x * GlobalTilingX11 ) , ( break26_g495.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g495 = (float2(( break26_g495.x + GlobalOffsetX10 ) , ( break26_g495.y + GlobalOffsetY9 )));
|
||||
float4 tex2DNode7_g494 = tex2D( _MainTex, ( ( appendResult14_g495 + appendResult13_g495 ) + Parallaxe380 ) );
|
||||
float BaseColorAlpha46 = (( _InvertABaseColor )?( ( 1.0 - tex2DNode7_g494.a ) ):( tex2DNode7_g494.a ));
|
||||
float4 clampResult38_g496 = clamp( ( CalculateContrast(( _ContrastDetailMap + 1.0 ),(( _SourceMask )?( ( (( _InvertMask )?( ( 1.0 - tex2DNode27_g496 ) ):( tex2DNode27_g496 )) + BaseColorAlpha46 ) ):( (( _InvertMask )?( ( 1.0 - tex2DNode27_g496 ) ):( tex2DNode27_g496 )) ))) + -_SpreadDetailMap ) , float4( 0,0,0,0 ) , float4( 1,1,1,0 ) );
|
||||
float4 Mask158 = (( _EnableDetailMask )?( ( clampResult38_g496 * _IntensityMask ) ):( temp_cast_2 ));
|
||||
float3 lerpResult137 = lerp( temp_output_356_0 , NormalDetail155 , Mask158.rgb);
|
||||
float3 lerpResult205 = lerp( temp_output_356_0 , BlendNormals( temp_output_356_0 , NormalDetail155 ) , Mask158.rgb);
|
||||
float3 Normal27 = (( _BlendMainNormal )?( lerpResult205 ):( lerpResult137 ));
|
||||
o.Normal = Normal27;
|
||||
float clampResult27_g494 = clamp( _Saturation , -1.0 , 100.0 );
|
||||
float3 desaturateInitialColor29_g494 = ( _Color * tex2DNode7_g494 ).rgb;
|
||||
float desaturateDot29_g494 = dot( desaturateInitialColor29_g494, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar29_g494 = lerp( desaturateInitialColor29_g494, desaturateDot29_g494.xxx, -clampResult27_g494 );
|
||||
float4 temp_output_355_0 = CalculateContrast(_Brightness,float4( desaturateVar29_g494 , 0.0 ));
|
||||
float2 uv_DetailAlbedoMap = i.uv_texcoord * _DetailAlbedoMap_ST.xy + _DetailAlbedoMap_ST.zw;
|
||||
float4 tex2DNode7_g498 = tex2D( _DetailAlbedoMap, uv_DetailAlbedoMap );
|
||||
float clampResult27_g498 = clamp( _DetailSaturation , -1.0 , 100.0 );
|
||||
float3 desaturateInitialColor29_g498 = ( _DetailColor * tex2DNode7_g498 ).rgb;
|
||||
float desaturateDot29_g498 = dot( desaturateInitialColor29_g498, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar29_g498 = lerp( desaturateInitialColor29_g498, desaturateDot29_g498.xxx, -clampResult27_g498 );
|
||||
float4 AlbedoDetail153 = CalculateContrast(_DetailBrightness,float4( desaturateVar29_g498 , 0.0 ));
|
||||
float4 lerpResult365 = lerp( temp_output_355_0 , AlbedoDetail153 , Mask158);
|
||||
float4 blendOpSrc364 = temp_output_355_0;
|
||||
float4 blendOpDest364 = lerpResult365;
|
||||
float4 lerpBlendMode364 = lerp(blendOpDest364,(( blendOpDest364 > 0.5 ) ? ( 1.0 - 2.0 * ( 1.0 - blendOpDest364 ) * ( 1.0 - blendOpSrc364 ) ) : ( 2.0 * blendOpDest364 * blendOpSrc364 ) ),Mask158.r);
|
||||
float4 Albedo26 = (( _VisualizeMask )?( Mask158 ):( ( saturate( lerpBlendMode364 )) ));
|
||||
o.Albedo = Albedo26.rgb;
|
||||
float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw;
|
||||
float2 break26_g520 = uv_EmissionMap;
|
||||
float2 appendResult14_g520 = (float2(( break26_g520.x * GlobalTilingX11 ) , ( break26_g520.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g520 = (float2(( break26_g520.x + GlobalOffsetX10 ) , ( break26_g520.y + GlobalOffsetY9 )));
|
||||
float4 Emission110 = ( _EmissionColor * tex2D( _EmissionMap, ( ( appendResult14_g520 + appendResult13_g520 ) + Parallaxe380 ) ) * _EmissionIntensity );
|
||||
o.Emission = Emission110.rgb;
|
||||
float2 uv_SpecGlossMap = i.uv_texcoord * _SpecGlossMap_ST.xy + _SpecGlossMap_ST.zw;
|
||||
float2 break26_g502 = uv_SpecGlossMap;
|
||||
float2 appendResult14_g502 = (float2(( break26_g502.x * GlobalTilingX11 ) , ( break26_g502.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g502 = (float2(( break26_g502.x + GlobalOffsetX10 ) , ( break26_g502.y + GlobalOffsetY9 )));
|
||||
float4 tex2DNode3_g501 = tex2D( _SpecGlossMap, ( ( appendResult14_g502 + appendResult13_g502 ) + Parallaxe380 ) );
|
||||
float4 Specular41 = ( _SpecularColor * tex2DNode3_g501 * _SpecularIntensity );
|
||||
o.Specular = Specular41.rgb;
|
||||
#if defined(_SOURCE_SPECULARALPHA)
|
||||
float staticSwitch31_g501 = ( tex2DNode3_g501.a * _Glossiness );
|
||||
#elif defined(_SOURCE_BASECOLORALPHA)
|
||||
float staticSwitch31_g501 = ( _Glossiness * BaseColorAlpha46 );
|
||||
#else
|
||||
float staticSwitch31_g501 = ( tex2DNode3_g501.a * _Glossiness );
|
||||
#endif
|
||||
float DetailBaseColorAlpha170 = ( _DetailColor.a * tex2DNode7_g498.a );
|
||||
float lerpResult387 = lerp( staticSwitch31_g501 , DetailBaseColorAlpha170 , Mask158.r);
|
||||
float Smoothness40 = lerpResult387;
|
||||
o.Smoothness = Smoothness40;
|
||||
float2 uv_OcclusionMap = i.uv_texcoord * _OcclusionMap_ST.xy + _OcclusionMap_ST.zw;
|
||||
float2 break26_g518 = uv_OcclusionMap;
|
||||
float2 appendResult14_g518 = (float2(( break26_g518.x * GlobalTilingX11 ) , ( break26_g518.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g518 = (float2(( break26_g518.x + GlobalOffsetX10 ) , ( break26_g518.y + GlobalOffsetY9 )));
|
||||
float blendOpSrc2_g517 = tex2D( _OcclusionMap, ( ( appendResult14_g518 + appendResult13_g518 ) + Parallaxe380 ) ).r;
|
||||
float blendOpDest2_g517 = ( 1.0 - _AoIntensity );
|
||||
float AmbientOcclusion94 = ( saturate( ( 1.0 - ( 1.0 - blendOpSrc2_g517 ) * ( 1.0 - blendOpDest2_g517 ) ) ));
|
||||
o.Occlusion = AmbientOcclusion94;
|
||||
o.Alpha = 1;
|
||||
float2 uv_CutoutMap = i.uv_texcoord * _CutoutMap_ST.xy + _CutoutMap_ST.zw;
|
||||
float4 tex2DNode8_g516 = tex2D( _CutoutMap, uv_CutoutMap );
|
||||
float4 temp_cast_14 = (BaseColorAlpha46).xxxx;
|
||||
float4 temp_cast_15 = (BaseColorAlpha46).xxxx;
|
||||
float4 clampResult24_g516 = clamp( (( _InvertCutout )?( ( 1.0 - (( _UseBaseColorAlpha )?( temp_cast_15 ):( tex2DNode8_g516 )) ) ):( (( _UseBaseColorAlpha )?( temp_cast_14 ):( tex2DNode8_g516 )) )) , float4( 0,0,0,0 ) , float4( 1,0,0,0 ) );
|
||||
float4 Cutout370 = clampResult24_g516;
|
||||
clip( Cutout370.r - _IntensityCutoutMap );
|
||||
}
|
||||
|
||||
ENDCG
|
||||
CGPROGRAM
|
||||
#pragma surface surf StandardSpecular 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.viewDir = IN.tSpace0.xyz * worldViewDir.x + IN.tSpace1.xyz * worldViewDir.y + IN.tSpace2.xyz * worldViewDir.z;
|
||||
surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz;
|
||||
surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz;
|
||||
surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz;
|
||||
SurfaceOutputStandardSpecular o;
|
||||
UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandardSpecular, o )
|
||||
surf( surfIN, o );
|
||||
#if defined( CAN_SKIP_VPOS )
|
||||
float2 vpos = IN.pos;
|
||||
#endif
|
||||
SHADOW_CASTER_FRAGMENT( IN )
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
Fallback "Diffuse"
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0e0019510d6142644b412d07db9dee4e
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,301 @@
|
|||
Shader "Ciconia Studio/CS_Standard/Builtin/Lite/Standard (Specular setup)/Opaque"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[Space(35)][Header(Surface Options )]
|
||||
[Space(15)][Enum(Off,2,On,0)] _Cull("Double Sided", Float) = 0 //"Back"
|
||||
[Enum(Off,0,On,1)] _ZWrite("ZWrite", Float) = 1.0 //"On"
|
||||
[Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4 //"LessEqual"
|
||||
|
||||
[Space(35)][Header(Main Properties )][Space(15)]_GlobalXYTilingXYZWOffsetXY("Global --> XY(TilingXY) - ZW(OffsetXY)", Vector) = (1,1,0,0)
|
||||
_Color("Color", Color) = (1,1,1,0)
|
||||
[Toggle]_InvertABaseColor("Invert Alpha", Float) = 0
|
||||
_MainTex("Base Color", 2D) = "white" {}
|
||||
_Saturation("Saturation", Float) = 0
|
||||
_Brightness("Brightness", Range( 1 , 8)) = 1
|
||||
[Space(35)]_BumpMap("Normal Map", 2D) = "bump" {}
|
||||
_BumpScale("Normal Intensity", Float) = 0.3
|
||||
[Space(35)]_SpecularColor("Specular Color", Color) = (1,1,1,0)
|
||||
_SpecGlossMap("Specular Map -->(Smoothness A)", 2D) = "white" {}
|
||||
_SpecularIntensity("Specular Intensity", Range( 0 , 2)) = 0.2
|
||||
_Glossiness("Smoothness", Range( 0 , 2)) = 0.5
|
||||
[Space(10)][KeywordEnum(SpecularAlpha,BaseColorAlpha)] _Source("Source", Float) = 0
|
||||
[Space(35)]_ParallaxMap("Height Map", 2D) = "white" {}
|
||||
_Parallax("Height Scale", Range( -0.1 , 0.1)) = 0
|
||||
[Space(35)]_OcclusionMap("Ambient Occlusion Map", 2D) = "white" {}
|
||||
_AoIntensity("Ao Intensity", Range( 0 , 2)) = 1
|
||||
[HDR][Space(45)]_EmissionColor("Emission Color", Color) = (0,0,0,0)
|
||||
_EmissionMap("Emission Map", 2D) = "white" {}
|
||||
_EmissionIntensity("Intensity", Range( 0 , 2)) = 1
|
||||
[Space(35)][Header(Mask Properties)][Toggle]_EnableDetailMask("Enable", Float) = 0
|
||||
[Space(15)][Toggle]_VisualizeMask("Visualize Mask", Float) = 0
|
||||
[Toggle]_SourceMask("Source - Use BaseColorAlpha", Float) = 0
|
||||
[Space(15)][Toggle]_InvertMask("Invert Mask", Float) = 0
|
||||
_DetailMask("Detail Mask", 2D) = "black" {}
|
||||
_IntensityMask("Intensity", Range( 0 , 1)) = 1
|
||||
[Space(15)]_ContrastDetailMap("Contrast", Float) = 0
|
||||
_SpreadDetailMap("Spread", Float) = 0
|
||||
[Space(35)][Header(Detail Properties)][Space(15)]_DetailColor("Color -->(Smoothness Intensity A)", Color) = (1,1,1,0)
|
||||
_DetailAlbedoMap("Base Color -->(Smoothness A)", 2D) = "white" {}
|
||||
_DetailSaturation("Saturation", Float) = 0
|
||||
_DetailBrightness("Brightness", Range( 1 , 8)) = 1
|
||||
[Space(35)][Toggle]_BlendMainNormal("Blend Main Normal", Float) = 1
|
||||
_DetailNormalMap("Normal Map", 2D) = "bump" {}
|
||||
_DetailNormalMapScale("Scale", Float) = 0.3
|
||||
[HideInInspector] _texcoord( "", 2D ) = "white" {}
|
||||
[HideInInspector] __dirty( "", Int ) = 1
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags{ "RenderType" = "Opaque" "Queue" = "Geometry+0" "IsEmissive" = "true" }
|
||||
Cull[_Cull]
|
||||
ZWrite[_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
CGINCLUDE
|
||||
#include "UnityCG.cginc"
|
||||
#include "UnityStandardUtils.cginc"
|
||||
#include "UnityPBSLighting.cginc"
|
||||
#include "Lighting.cginc"
|
||||
#pragma target 3.0
|
||||
#pragma shader_feature_local _SOURCE_SPECULARALPHA _SOURCE_BASECOLORALPHA
|
||||
#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 viewDir;
|
||||
INTERNAL_DATA
|
||||
half ASEVFace : VFACE;
|
||||
};
|
||||
|
||||
uniform float _BlendMainNormal;
|
||||
uniform sampler2D _BumpMap;
|
||||
uniform float4 _BumpMap_ST;
|
||||
uniform float4 _GlobalXYTilingXYZWOffsetXY;
|
||||
uniform sampler2D _ParallaxMap;
|
||||
uniform float4 _ParallaxMap_ST;
|
||||
uniform float _Parallax;
|
||||
uniform float _BumpScale;
|
||||
uniform sampler2D _DetailNormalMap;
|
||||
uniform float4 _DetailNormalMap_ST;
|
||||
uniform float _DetailNormalMapScale;
|
||||
uniform float _EnableDetailMask;
|
||||
uniform float _ContrastDetailMap;
|
||||
uniform float _SourceMask;
|
||||
uniform float _InvertMask;
|
||||
uniform sampler2D _DetailMask;
|
||||
uniform float4 _DetailMask_ST;
|
||||
uniform float _InvertABaseColor;
|
||||
uniform sampler2D _MainTex;
|
||||
uniform float4 _MainTex_ST;
|
||||
uniform float _SpreadDetailMap;
|
||||
uniform float _IntensityMask;
|
||||
uniform float _VisualizeMask;
|
||||
uniform float _Brightness;
|
||||
uniform float4 _Color;
|
||||
uniform float _Saturation;
|
||||
uniform float _DetailBrightness;
|
||||
uniform float4 _DetailColor;
|
||||
uniform sampler2D _DetailAlbedoMap;
|
||||
uniform float4 _DetailAlbedoMap_ST;
|
||||
uniform float _DetailSaturation;
|
||||
uniform float4 _EmissionColor;
|
||||
uniform sampler2D _EmissionMap;
|
||||
uniform float4 _EmissionMap_ST;
|
||||
uniform float _EmissionIntensity;
|
||||
uniform float4 _SpecularColor;
|
||||
uniform sampler2D _SpecGlossMap;
|
||||
uniform float4 _SpecGlossMap_ST;
|
||||
uniform float _SpecularIntensity;
|
||||
uniform float _Glossiness;
|
||||
uniform sampler2D _OcclusionMap;
|
||||
uniform float4 _OcclusionMap_ST;
|
||||
uniform float _AoIntensity;
|
||||
|
||||
|
||||
float4 CalculateContrast( float contrastValue, float4 colorTarget )
|
||||
{
|
||||
float t = 0.5 * ( 1.0 - contrastValue );
|
||||
return mul( float4x4( contrastValue,0,0,t, 0,contrastValue,0,t, 0,0,contrastValue,t, 0,0,0,1 ), colorTarget );
|
||||
}
|
||||
|
||||
void surf( Input i , inout SurfaceOutputStandardSpecular o )
|
||||
{
|
||||
float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw;
|
||||
float2 break26_g497 = uv_BumpMap;
|
||||
float GlobalTilingX11 = ( _GlobalXYTilingXYZWOffsetXY.x - 1.0 );
|
||||
float GlobalTilingY8 = ( _GlobalXYTilingXYZWOffsetXY.y - 1.0 );
|
||||
float2 appendResult14_g497 = (float2(( break26_g497.x * GlobalTilingX11 ) , ( break26_g497.y * GlobalTilingY8 )));
|
||||
float GlobalOffsetX10 = _GlobalXYTilingXYZWOffsetXY.z;
|
||||
float GlobalOffsetY9 = _GlobalXYTilingXYZWOffsetXY.w;
|
||||
float2 appendResult13_g497 = (float2(( break26_g497.x + GlobalOffsetX10 ) , ( break26_g497.y + GlobalOffsetY9 )));
|
||||
float2 uv_ParallaxMap = i.uv_texcoord * _ParallaxMap_ST.xy + _ParallaxMap_ST.zw;
|
||||
float2 break26_g489 = uv_ParallaxMap;
|
||||
float2 appendResult14_g489 = (float2(( break26_g489.x * GlobalTilingX11 ) , ( break26_g489.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g489 = (float2(( break26_g489.x + GlobalOffsetX10 ) , ( break26_g489.y + GlobalOffsetY9 )));
|
||||
float4 temp_cast_0 = (tex2D( _ParallaxMap, ( appendResult14_g489 + appendResult13_g489 ) ).g).xxxx;
|
||||
float2 paralaxOffset36_g488 = ParallaxOffset( temp_cast_0.x , _Parallax , i.viewDir );
|
||||
float2 switchResult47_g488 = (((i.ASEVFace>0)?(paralaxOffset36_g488):(0.0)));
|
||||
float2 Parallaxe375 = switchResult47_g488;
|
||||
float3 temp_output_356_0 = UnpackScaleNormal( tex2D( _BumpMap, ( ( appendResult14_g497 + appendResult13_g497 ) + Parallaxe375 ) ), _BumpScale );
|
||||
float2 uv_DetailNormalMap = i.uv_texcoord * _DetailNormalMap_ST.xy + _DetailNormalMap_ST.zw;
|
||||
float3 NormalDetail155 = UnpackScaleNormal( tex2D( _DetailNormalMap, uv_DetailNormalMap ), _DetailNormalMapScale );
|
||||
float4 temp_cast_2 = (0.0).xxxx;
|
||||
float2 uv_DetailMask = i.uv_texcoord * _DetailMask_ST.xy + _DetailMask_ST.zw;
|
||||
float4 tex2DNode27_g493 = tex2D( _DetailMask, uv_DetailMask );
|
||||
float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw;
|
||||
float2 break26_g492 = uv_MainTex;
|
||||
float2 appendResult14_g492 = (float2(( break26_g492.x * GlobalTilingX11 ) , ( break26_g492.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g492 = (float2(( break26_g492.x + GlobalOffsetX10 ) , ( break26_g492.y + GlobalOffsetY9 )));
|
||||
float4 tex2DNode7_g491 = tex2D( _MainTex, ( ( appendResult14_g492 + appendResult13_g492 ) + Parallaxe375 ) );
|
||||
float BaseColorAlpha46 = (( _InvertABaseColor )?( ( 1.0 - tex2DNode7_g491.a ) ):( tex2DNode7_g491.a ));
|
||||
float4 clampResult38_g493 = clamp( ( CalculateContrast(( _ContrastDetailMap + 1.0 ),(( _SourceMask )?( ( (( _InvertMask )?( ( 1.0 - tex2DNode27_g493 ) ):( tex2DNode27_g493 )) + BaseColorAlpha46 ) ):( (( _InvertMask )?( ( 1.0 - tex2DNode27_g493 ) ):( tex2DNode27_g493 )) ))) + -_SpreadDetailMap ) , float4( 0,0,0,0 ) , float4( 1,1,1,0 ) );
|
||||
float4 Mask158 = (( _EnableDetailMask )?( ( clampResult38_g493 * _IntensityMask ) ):( temp_cast_2 ));
|
||||
float3 lerpResult137 = lerp( temp_output_356_0 , NormalDetail155 , Mask158.rgb);
|
||||
float3 lerpResult205 = lerp( temp_output_356_0 , BlendNormals( temp_output_356_0 , NormalDetail155 ) , Mask158.rgb);
|
||||
float3 Normal27 = (( _BlendMainNormal )?( lerpResult205 ):( lerpResult137 ));
|
||||
o.Normal = Normal27;
|
||||
float clampResult27_g491 = clamp( _Saturation , -1.0 , 100.0 );
|
||||
float3 desaturateInitialColor29_g491 = ( _Color * tex2DNode7_g491 ).rgb;
|
||||
float desaturateDot29_g491 = dot( desaturateInitialColor29_g491, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar29_g491 = lerp( desaturateInitialColor29_g491, desaturateDot29_g491.xxx, -clampResult27_g491 );
|
||||
float4 temp_output_355_0 = CalculateContrast(_Brightness,float4( desaturateVar29_g491 , 0.0 ));
|
||||
float2 uv_DetailAlbedoMap = i.uv_texcoord * _DetailAlbedoMap_ST.xy + _DetailAlbedoMap_ST.zw;
|
||||
float4 tex2DNode7_g494 = tex2D( _DetailAlbedoMap, uv_DetailAlbedoMap );
|
||||
float clampResult27_g494 = clamp( _DetailSaturation , -1.0 , 100.0 );
|
||||
float3 desaturateInitialColor29_g494 = ( _DetailColor * tex2DNode7_g494 ).rgb;
|
||||
float desaturateDot29_g494 = dot( desaturateInitialColor29_g494, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar29_g494 = lerp( desaturateInitialColor29_g494, desaturateDot29_g494.xxx, -clampResult27_g494 );
|
||||
float4 AlbedoDetail153 = CalculateContrast(_DetailBrightness,float4( desaturateVar29_g494 , 0.0 ));
|
||||
float4 lerpResult365 = lerp( temp_output_355_0 , AlbedoDetail153 , Mask158);
|
||||
float4 blendOpSrc364 = temp_output_355_0;
|
||||
float4 blendOpDest364 = lerpResult365;
|
||||
float4 lerpBlendMode364 = lerp(blendOpDest364,(( blendOpDest364 > 0.5 ) ? ( 1.0 - 2.0 * ( 1.0 - blendOpDest364 ) * ( 1.0 - blendOpSrc364 ) ) : ( 2.0 * blendOpDest364 * blendOpSrc364 ) ),Mask158.r);
|
||||
float4 Albedo26 = (( _VisualizeMask )?( Mask158 ):( ( saturate( lerpBlendMode364 )) ));
|
||||
o.Albedo = Albedo26.rgb;
|
||||
float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw;
|
||||
float2 break26_g504 = uv_EmissionMap;
|
||||
float2 appendResult14_g504 = (float2(( break26_g504.x * GlobalTilingX11 ) , ( break26_g504.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g504 = (float2(( break26_g504.x + GlobalOffsetX10 ) , ( break26_g504.y + GlobalOffsetY9 )));
|
||||
float4 Emission110 = ( _EmissionColor * tex2D( _EmissionMap, ( ( appendResult14_g504 + appendResult13_g504 ) + Parallaxe375 ) ) * _EmissionIntensity );
|
||||
o.Emission = Emission110.rgb;
|
||||
float2 uv_SpecGlossMap = i.uv_texcoord * _SpecGlossMap_ST.xy + _SpecGlossMap_ST.zw;
|
||||
float2 break26_g499 = uv_SpecGlossMap;
|
||||
float2 appendResult14_g499 = (float2(( break26_g499.x * GlobalTilingX11 ) , ( break26_g499.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g499 = (float2(( break26_g499.x + GlobalOffsetX10 ) , ( break26_g499.y + GlobalOffsetY9 )));
|
||||
float4 tex2DNode3_g498 = tex2D( _SpecGlossMap, ( ( appendResult14_g499 + appendResult13_g499 ) + Parallaxe375 ) );
|
||||
float4 Specular41 = ( _SpecularColor * tex2DNode3_g498 * _SpecularIntensity );
|
||||
o.Specular = Specular41.rgb;
|
||||
#if defined(_SOURCE_SPECULARALPHA)
|
||||
float staticSwitch31_g498 = ( tex2DNode3_g498.a * _Glossiness );
|
||||
#elif defined(_SOURCE_BASECOLORALPHA)
|
||||
float staticSwitch31_g498 = ( _Glossiness * BaseColorAlpha46 );
|
||||
#else
|
||||
float staticSwitch31_g498 = ( tex2DNode3_g498.a * _Glossiness );
|
||||
#endif
|
||||
float DetailBaseColorAlpha170 = ( _DetailColor.a * tex2DNode7_g494.a );
|
||||
float lerpResult385 = lerp( staticSwitch31_g498 , DetailBaseColorAlpha170 , Mask158.r);
|
||||
float Smoothness40 = lerpResult385;
|
||||
o.Smoothness = Smoothness40;
|
||||
float2 uv_OcclusionMap = i.uv_texcoord * _OcclusionMap_ST.xy + _OcclusionMap_ST.zw;
|
||||
float2 break26_g506 = uv_OcclusionMap;
|
||||
float2 appendResult14_g506 = (float2(( break26_g506.x * GlobalTilingX11 ) , ( break26_g506.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g506 = (float2(( break26_g506.x + GlobalOffsetX10 ) , ( break26_g506.y + GlobalOffsetY9 )));
|
||||
float blendOpSrc2_g505 = tex2D( _OcclusionMap, ( ( appendResult14_g506 + appendResult13_g506 ) + Parallaxe375 ) ).r;
|
||||
float blendOpDest2_g505 = ( 1.0 - _AoIntensity );
|
||||
float AmbientOcclusion94 = ( saturate( ( 1.0 - ( 1.0 - blendOpSrc2_g505 ) * ( 1.0 - blendOpDest2_g505 ) ) ));
|
||||
o.Occlusion = AmbientOcclusion94;
|
||||
o.Alpha = 1;
|
||||
}
|
||||
|
||||
ENDCG
|
||||
CGPROGRAM
|
||||
#pragma surface surf StandardSpecular 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.viewDir = IN.tSpace0.xyz * worldViewDir.x + IN.tSpace1.xyz * worldViewDir.y + IN.tSpace2.xyz * worldViewDir.z;
|
||||
surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz;
|
||||
surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz;
|
||||
surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz;
|
||||
SurfaceOutputStandardSpecular o;
|
||||
UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandardSpecular, o )
|
||||
surf( surfIN, o );
|
||||
#if defined( CAN_SKIP_VPOS )
|
||||
float2 vpos = IN.pos;
|
||||
#endif
|
||||
SHADOW_CASTER_FRAGMENT( IN )
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
Fallback "Diffuse"
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ed04895971c00fc498c346df2ac0e9b4
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,325 @@
|
|||
Shader "Ciconia Studio/CS_Standard/Builtin/Lite/Standard (Specular setup)/Transparent"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[Space(35)][Header(Surface Options )]
|
||||
[Space(15)][Enum(Off,2,On,0)] _Cull("Double Sided", Float) = 0 //"Back"
|
||||
[Enum(Off,0,On,1)] _ZWrite("ZWrite", Float) = 1.0 //"On"
|
||||
[Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4 //"LessEqual"
|
||||
|
||||
[Space(35)][Header(Main Properties )][Space(15)]_GlobalXYTilingXYZWOffsetXY("Global --> XY(TilingXY) - ZW(OffsetXY)", Vector) = (1,1,0,0)
|
||||
_Color("Color", Color) = (1,1,1,0)
|
||||
[Toggle]_InvertABaseColor("Invert Alpha", Float) = 0
|
||||
_MainTex("Base Color", 2D) = "white" {}
|
||||
_Saturation("Saturation", Float) = 0
|
||||
_Brightness("Brightness", Range( 1 , 8)) = 1
|
||||
[Space(35)]_BumpMap("Normal Map", 2D) = "bump" {}
|
||||
_BumpScale("Normal Intensity", Float) = 0.3
|
||||
[Space(35)]_SpecularColor("Specular Color", Color) = (1,1,1,0)
|
||||
_SpecGlossMap("Specular Map -->(Smoothness A)", 2D) = "white" {}
|
||||
_SpecularIntensity("Specular Intensity", Range( 0 , 2)) = 0.2
|
||||
_Glossiness("Smoothness", Range( 0 , 2)) = 0.5
|
||||
[Space(10)][KeywordEnum(SpecularAlpha,BaseColorAlpha)] _Source("Source", Float) = 0
|
||||
[Space(35)]_ParallaxMap("Height Map", 2D) = "white" {}
|
||||
_Parallax("Height Scale", Range( -0.1 , 0.1)) = 0
|
||||
[Space(35)]_OcclusionMap("Ambient Occlusion Map", 2D) = "white" {}
|
||||
_AoIntensity("Ao Intensity", Range( 0 , 2)) = 1
|
||||
[HDR][Space(45)]_EmissionColor("Emission Color", Color) = (0,0,0,0)
|
||||
_EmissionMap("Emission Map", 2D) = "white" {}
|
||||
_EmissionIntensity("Intensity", Range( 0 , 2)) = 1
|
||||
[Space(35)][Header(Mask Properties)][Toggle]_EnableDetailMask("Enable", Float) = 0
|
||||
[Space(15)][Toggle]_VisualizeMask("Visualize Mask", Float) = 0
|
||||
[Toggle]_SourceMask("Source - Use BaseColorAlpha", Float) = 0
|
||||
[Space(15)][Toggle]_InvertMask("Invert Mask", Float) = 0
|
||||
_DetailMask("Detail Mask", 2D) = "black" {}
|
||||
_IntensityMask("Intensity", Range( 0 , 1)) = 1
|
||||
[Space(15)]_ContrastDetailMap("Contrast", Float) = 0
|
||||
_SpreadDetailMap("Spread", Float) = 0
|
||||
[Space(35)][Header(Detail Properties)][Space(15)]_DetailColor("Color -->(Smoothness Intensity A)", Color) = (1,1,1,0)
|
||||
_DetailAlbedoMap("Base Color -->(Smoothness A)", 2D) = "white" {}
|
||||
_DetailSaturation("Saturation", Float) = 0
|
||||
_DetailBrightness("Brightness", Range( 1 , 8)) = 1
|
||||
[Space(35)][Toggle]_BlendMainNormal("Blend Main Normal", Float) = 1
|
||||
_DetailNormalMap("Normal Map", 2D) = "bump" {}
|
||||
_DetailNormalMapScale("Scale", Float) = 0.3
|
||||
[HideInInspector] _texcoord( "", 2D ) = "white" {}
|
||||
[Space(35)][Header(Transparent Properties)][Space(15)][Toggle]_InvertTransparent("Invert ", Float) = 0
|
||||
[Toggle]_UseBaseColorAlpha("Use BaseColor Alpha", Float) = 0
|
||||
_TransparentMask("Transparent Mask", 2D) = "white" {}
|
||||
_IntensityTransparentMap("Opacity", Range( 0 , 1)) = 0
|
||||
[Space(15)]_ContrastTransparentMap("Contrast", Float) = 0
|
||||
_SpreadTransparentMap("Spread", Float) = 0
|
||||
[HideInInspector] __dirty( "", Int ) = 1
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags{ "RenderType" = "Custom" "Queue" = "Transparent+0" "IsEmissive" = "true" }
|
||||
Cull[_Cull]
|
||||
ZWrite[_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
|
||||
CGINCLUDE
|
||||
#include "UnityCG.cginc"
|
||||
#include "UnityStandardUtils.cginc"
|
||||
#include "UnityPBSLighting.cginc"
|
||||
#include "Lighting.cginc"
|
||||
#pragma target 3.0
|
||||
#pragma shader_feature_local _SOURCE_SPECULARALPHA _SOURCE_BASECOLORALPHA
|
||||
#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 viewDir;
|
||||
INTERNAL_DATA
|
||||
half ASEVFace : VFACE;
|
||||
};
|
||||
|
||||
uniform float _BlendMainNormal;
|
||||
uniform sampler2D _BumpMap;
|
||||
uniform float4 _BumpMap_ST;
|
||||
uniform float4 _GlobalXYTilingXYZWOffsetXY;
|
||||
uniform sampler2D _ParallaxMap;
|
||||
uniform float4 _ParallaxMap_ST;
|
||||
uniform float _Parallax;
|
||||
uniform float _BumpScale;
|
||||
uniform sampler2D _DetailNormalMap;
|
||||
uniform float4 _DetailNormalMap_ST;
|
||||
uniform float _DetailNormalMapScale;
|
||||
uniform float _EnableDetailMask;
|
||||
uniform float _ContrastDetailMap;
|
||||
uniform float _SourceMask;
|
||||
uniform float _InvertMask;
|
||||
uniform sampler2D _DetailMask;
|
||||
uniform float4 _DetailMask_ST;
|
||||
uniform float _InvertABaseColor;
|
||||
uniform sampler2D _MainTex;
|
||||
uniform float4 _MainTex_ST;
|
||||
uniform float _SpreadDetailMap;
|
||||
uniform float _IntensityMask;
|
||||
uniform float _VisualizeMask;
|
||||
uniform float _Brightness;
|
||||
uniform float4 _Color;
|
||||
uniform float _Saturation;
|
||||
uniform float _DetailBrightness;
|
||||
uniform float4 _DetailColor;
|
||||
uniform sampler2D _DetailAlbedoMap;
|
||||
uniform float4 _DetailAlbedoMap_ST;
|
||||
uniform float _DetailSaturation;
|
||||
uniform float4 _EmissionColor;
|
||||
uniform sampler2D _EmissionMap;
|
||||
uniform float4 _EmissionMap_ST;
|
||||
uniform float _EmissionIntensity;
|
||||
uniform float4 _SpecularColor;
|
||||
uniform sampler2D _SpecGlossMap;
|
||||
uniform float4 _SpecGlossMap_ST;
|
||||
uniform float _SpecularIntensity;
|
||||
uniform float _Glossiness;
|
||||
uniform sampler2D _OcclusionMap;
|
||||
uniform float4 _OcclusionMap_ST;
|
||||
uniform float _AoIntensity;
|
||||
uniform float _ContrastTransparentMap;
|
||||
uniform float _InvertTransparent;
|
||||
uniform float _UseBaseColorAlpha;
|
||||
uniform sampler2D _TransparentMask;
|
||||
uniform float4 _TransparentMask_ST;
|
||||
uniform float _SpreadTransparentMap;
|
||||
uniform float _IntensityTransparentMap;
|
||||
|
||||
|
||||
float4 CalculateContrast( float contrastValue, float4 colorTarget )
|
||||
{
|
||||
float t = 0.5 * ( 1.0 - contrastValue );
|
||||
return mul( float4x4( contrastValue,0,0,t, 0,contrastValue,0,t, 0,0,contrastValue,t, 0,0,0,1 ), colorTarget );
|
||||
}
|
||||
|
||||
void surf( Input i , inout SurfaceOutputStandardSpecular o )
|
||||
{
|
||||
float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw;
|
||||
float2 break26_g512 = uv_BumpMap;
|
||||
float GlobalTilingX11 = ( _GlobalXYTilingXYZWOffsetXY.x - 1.0 );
|
||||
float GlobalTilingY8 = ( _GlobalXYTilingXYZWOffsetXY.y - 1.0 );
|
||||
float2 appendResult14_g512 = (float2(( break26_g512.x * GlobalTilingX11 ) , ( break26_g512.y * GlobalTilingY8 )));
|
||||
float GlobalOffsetX10 = _GlobalXYTilingXYZWOffsetXY.z;
|
||||
float GlobalOffsetY9 = _GlobalXYTilingXYZWOffsetXY.w;
|
||||
float2 appendResult13_g512 = (float2(( break26_g512.x + GlobalOffsetX10 ) , ( break26_g512.y + GlobalOffsetY9 )));
|
||||
float2 uv_ParallaxMap = i.uv_texcoord * _ParallaxMap_ST.xy + _ParallaxMap_ST.zw;
|
||||
float2 break26_g502 = uv_ParallaxMap;
|
||||
float2 appendResult14_g502 = (float2(( break26_g502.x * GlobalTilingX11 ) , ( break26_g502.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g502 = (float2(( break26_g502.x + GlobalOffsetX10 ) , ( break26_g502.y + GlobalOffsetY9 )));
|
||||
float4 temp_cast_0 = (tex2D( _ParallaxMap, ( appendResult14_g502 + appendResult13_g502 ) ).g).xxxx;
|
||||
float2 paralaxOffset36_g501 = ParallaxOffset( temp_cast_0.x , _Parallax , i.viewDir );
|
||||
float2 switchResult47_g501 = (((i.ASEVFace>0)?(paralaxOffset36_g501):(0.0)));
|
||||
float2 Parallaxe390 = switchResult47_g501;
|
||||
float3 temp_output_356_0 = UnpackScaleNormal( tex2D( _BumpMap, ( ( appendResult14_g512 + appendResult13_g512 ) + Parallaxe390 ) ), _BumpScale );
|
||||
float2 uv_DetailNormalMap = i.uv_texcoord * _DetailNormalMap_ST.xy + _DetailNormalMap_ST.zw;
|
||||
float3 NormalDetail155 = UnpackScaleNormal( tex2D( _DetailNormalMap, uv_DetailNormalMap ), _DetailNormalMapScale );
|
||||
float4 temp_cast_2 = (0.0).xxxx;
|
||||
float2 uv_DetailMask = i.uv_texcoord * _DetailMask_ST.xy + _DetailMask_ST.zw;
|
||||
float4 tex2DNode27_g508 = tex2D( _DetailMask, uv_DetailMask );
|
||||
float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw;
|
||||
float2 break26_g507 = uv_MainTex;
|
||||
float2 appendResult14_g507 = (float2(( break26_g507.x * GlobalTilingX11 ) , ( break26_g507.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g507 = (float2(( break26_g507.x + GlobalOffsetX10 ) , ( break26_g507.y + GlobalOffsetY9 )));
|
||||
float4 tex2DNode7_g506 = tex2D( _MainTex, ( ( appendResult14_g507 + appendResult13_g507 ) + Parallaxe390 ) );
|
||||
float BaseColorAlpha46 = (( _InvertABaseColor )?( ( 1.0 - tex2DNode7_g506.a ) ):( tex2DNode7_g506.a ));
|
||||
float4 clampResult38_g508 = clamp( ( CalculateContrast(( _ContrastDetailMap + 1.0 ),(( _SourceMask )?( ( (( _InvertMask )?( ( 1.0 - tex2DNode27_g508 ) ):( tex2DNode27_g508 )) + BaseColorAlpha46 ) ):( (( _InvertMask )?( ( 1.0 - tex2DNode27_g508 ) ):( tex2DNode27_g508 )) ))) + -_SpreadDetailMap ) , float4( 0,0,0,0 ) , float4( 1,1,1,0 ) );
|
||||
float4 Mask158 = (( _EnableDetailMask )?( ( clampResult38_g508 * _IntensityMask ) ):( temp_cast_2 ));
|
||||
float3 lerpResult137 = lerp( temp_output_356_0 , NormalDetail155 , Mask158.rgb);
|
||||
float3 lerpResult205 = lerp( temp_output_356_0 , BlendNormals( temp_output_356_0 , NormalDetail155 ) , Mask158.rgb);
|
||||
float3 Normal27 = (( _BlendMainNormal )?( lerpResult205 ):( lerpResult137 ));
|
||||
o.Normal = Normal27;
|
||||
float clampResult27_g506 = clamp( _Saturation , -1.0 , 100.0 );
|
||||
float3 desaturateInitialColor29_g506 = ( _Color * tex2DNode7_g506 ).rgb;
|
||||
float desaturateDot29_g506 = dot( desaturateInitialColor29_g506, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar29_g506 = lerp( desaturateInitialColor29_g506, desaturateDot29_g506.xxx, -clampResult27_g506 );
|
||||
float4 temp_output_355_0 = CalculateContrast(_Brightness,float4( desaturateVar29_g506 , 0.0 ));
|
||||
float2 uv_DetailAlbedoMap = i.uv_texcoord * _DetailAlbedoMap_ST.xy + _DetailAlbedoMap_ST.zw;
|
||||
float4 tex2DNode7_g509 = tex2D( _DetailAlbedoMap, uv_DetailAlbedoMap );
|
||||
float clampResult27_g509 = clamp( _DetailSaturation , -1.0 , 100.0 );
|
||||
float3 desaturateInitialColor29_g509 = ( _DetailColor * tex2DNode7_g509 ).rgb;
|
||||
float desaturateDot29_g509 = dot( desaturateInitialColor29_g509, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar29_g509 = lerp( desaturateInitialColor29_g509, desaturateDot29_g509.xxx, -clampResult27_g509 );
|
||||
float4 AlbedoDetail153 = CalculateContrast(_DetailBrightness,float4( desaturateVar29_g509 , 0.0 ));
|
||||
float4 lerpResult365 = lerp( temp_output_355_0 , AlbedoDetail153 , Mask158);
|
||||
float4 blendOpSrc364 = temp_output_355_0;
|
||||
float4 blendOpDest364 = lerpResult365;
|
||||
float4 lerpBlendMode364 = lerp(blendOpDest364,(( blendOpDest364 > 0.5 ) ? ( 1.0 - 2.0 * ( 1.0 - blendOpDest364 ) * ( 1.0 - blendOpSrc364 ) ) : ( 2.0 * blendOpDest364 * blendOpSrc364 ) ),Mask158.r);
|
||||
float4 Albedo26 = (( _VisualizeMask )?( Mask158 ):( ( saturate( lerpBlendMode364 )) ));
|
||||
o.Albedo = Albedo26.rgb;
|
||||
float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw;
|
||||
float2 break26_g528 = uv_EmissionMap;
|
||||
float2 appendResult14_g528 = (float2(( break26_g528.x * GlobalTilingX11 ) , ( break26_g528.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g528 = (float2(( break26_g528.x + GlobalOffsetX10 ) , ( break26_g528.y + GlobalOffsetY9 )));
|
||||
float4 Emission110 = ( _EmissionColor * tex2D( _EmissionMap, ( ( appendResult14_g528 + appendResult13_g528 ) + Parallaxe390 ) ) * _EmissionIntensity );
|
||||
o.Emission = Emission110.rgb;
|
||||
float2 uv_SpecGlossMap = i.uv_texcoord * _SpecGlossMap_ST.xy + _SpecGlossMap_ST.zw;
|
||||
float2 break26_g514 = uv_SpecGlossMap;
|
||||
float2 appendResult14_g514 = (float2(( break26_g514.x * GlobalTilingX11 ) , ( break26_g514.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g514 = (float2(( break26_g514.x + GlobalOffsetX10 ) , ( break26_g514.y + GlobalOffsetY9 )));
|
||||
float4 tex2DNode3_g513 = tex2D( _SpecGlossMap, ( ( appendResult14_g514 + appendResult13_g514 ) + Parallaxe390 ) );
|
||||
float4 Specular41 = ( _SpecularColor * tex2DNode3_g513 * _SpecularIntensity );
|
||||
o.Specular = Specular41.rgb;
|
||||
#if defined(_SOURCE_SPECULARALPHA)
|
||||
float staticSwitch31_g513 = ( tex2DNode3_g513.a * _Glossiness );
|
||||
#elif defined(_SOURCE_BASECOLORALPHA)
|
||||
float staticSwitch31_g513 = ( _Glossiness * BaseColorAlpha46 );
|
||||
#else
|
||||
float staticSwitch31_g513 = ( tex2DNode3_g513.a * _Glossiness );
|
||||
#endif
|
||||
float DetailBaseColorAlpha170 = ( _DetailColor.a * tex2DNode7_g509.a );
|
||||
float lerpResult397 = lerp( staticSwitch31_g513 , DetailBaseColorAlpha170 , Mask158.r);
|
||||
float Smoothness40 = lerpResult397;
|
||||
o.Smoothness = Smoothness40;
|
||||
float2 uv_OcclusionMap = i.uv_texcoord * _OcclusionMap_ST.xy + _OcclusionMap_ST.zw;
|
||||
float2 break26_g530 = uv_OcclusionMap;
|
||||
float2 appendResult14_g530 = (float2(( break26_g530.x * GlobalTilingX11 ) , ( break26_g530.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g530 = (float2(( break26_g530.x + GlobalOffsetX10 ) , ( break26_g530.y + GlobalOffsetY9 )));
|
||||
float blendOpSrc2_g529 = tex2D( _OcclusionMap, ( ( appendResult14_g530 + appendResult13_g530 ) + Parallaxe390 ) ).r;
|
||||
float blendOpDest2_g529 = ( 1.0 - _AoIntensity );
|
||||
float AmbientOcclusion94 = ( saturate( ( 1.0 - ( 1.0 - blendOpSrc2_g529 ) * ( 1.0 - blendOpDest2_g529 ) ) ));
|
||||
o.Occlusion = AmbientOcclusion94;
|
||||
float2 uv_TransparentMask = i.uv_texcoord * _TransparentMask_ST.xy + _TransparentMask_ST.zw;
|
||||
float4 tex2DNode8_g526 = tex2D( _TransparentMask, uv_TransparentMask );
|
||||
float4 temp_cast_14 = (BaseColorAlpha46).xxxx;
|
||||
float4 temp_cast_15 = (BaseColorAlpha46).xxxx;
|
||||
float4 clampResult24_g526 = clamp( ( CalculateContrast(( _ContrastTransparentMap + 1.0 ),(( _InvertTransparent )?( ( 1.0 - (( _UseBaseColorAlpha )?( temp_cast_15 ):( tex2DNode8_g526 )) ) ):( (( _UseBaseColorAlpha )?( temp_cast_14 ):( tex2DNode8_g526 )) ))) + -_SpreadTransparentMap ) , float4( 0,0,0,0 ) , float4( 1,0,0,0 ) );
|
||||
float4 Transparent375 = ( clampResult24_g526 * ( 1.0 - _IntensityTransparentMap ) );
|
||||
o.Alpha = Transparent375.r;
|
||||
}
|
||||
|
||||
ENDCG
|
||||
CGPROGRAM
|
||||
#pragma surface surf StandardSpecular 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"
|
||||
sampler3D _DitherMaskLOD;
|
||||
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.viewDir = IN.tSpace0.xyz * worldViewDir.x + IN.tSpace1.xyz * worldViewDir.y + IN.tSpace2.xyz * worldViewDir.z;
|
||||
surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz;
|
||||
surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz;
|
||||
surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz;
|
||||
SurfaceOutputStandardSpecular o;
|
||||
UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandardSpecular, o )
|
||||
surf( surfIN, o );
|
||||
#if defined( CAN_SKIP_VPOS )
|
||||
float2 vpos = IN.pos;
|
||||
#endif
|
||||
half alphaRef = tex3D( _DitherMaskLOD, float3( vpos.xy * 0.25, o.Alpha * 0.9375 ) ).a;
|
||||
clip( alphaRef - 0.01 );
|
||||
SHADOW_CASTER_FRAGMENT( IN )
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
Fallback "Diffuse"
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bbb29bc6f1f0b704d989cac34a3a1b7e
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,393 @@
|
|||
Shader "Ciconia Studio/CS_Standard/Builtin/Standard (Specular setup)/Cutout"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[Space(35)][Header(Surface Options )]
|
||||
[Space(15)][Enum(Off,2,On,0)] _Cull("Double Sided", Float) = 0 //"Back"
|
||||
[Enum(Off,0,On,1)] _ZWrite("ZWrite", Float) = 1.0 //"On"
|
||||
[Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4 //"LessEqual"
|
||||
|
||||
_Cutoff( "Mask Clip Value", Float ) = 0.5
|
||||
[Space(35)][Header(Main Properties )][Space(15)]_GlobalXYTilingXYZWOffsetXY("Global --> XY(TilingXY) - ZW(OffsetXY)", Vector) = (1,1,0,0)
|
||||
_Color("Color", Color) = (1,1,1,0)
|
||||
[Toggle]_InvertABaseColor("Invert Alpha", Float) = 0
|
||||
_MainTex("Base Color", 2D) = "white" {}
|
||||
_Saturation("Saturation", Float) = 0
|
||||
_Brightness("Brightness", Range( 1 , 8)) = 1
|
||||
[Space(35)]_BumpMap("Normal Map", 2D) = "bump" {}
|
||||
_BumpScale("Normal Intensity", Float) = 0.3
|
||||
[Space(35)]_SpecularColor("Specular Color", Color) = (1,1,1,0)
|
||||
_SpecGlossMap("Specular Map -->(Smoothness A)", 2D) = "white" {}
|
||||
_SpecularIntensity("Specular Intensity", Range( 0 , 2)) = 0.2
|
||||
_Glossiness("Smoothness", Range( 0 , 2)) = 0.5
|
||||
[Space(10)][KeywordEnum(SpecularAlpha,BaseColorAlpha)] _Source("Source", Float) = 0
|
||||
[Space(35)]_ParallaxMap("Height Map", 2D) = "white" {}
|
||||
_Parallax("Height Scale", Range( -0.1 , 0.1)) = 0
|
||||
[Space(35)]_OcclusionMap("Ambient Occlusion Map", 2D) = "white" {}
|
||||
_AoIntensity("Ao Intensity", Range( 0 , 2)) = 1
|
||||
[HDR][Space(45)]_EmissionColor("Emission Color", Color) = (0,0,0,0)
|
||||
_EmissionMap("Emission Map", 2D) = "white" {}
|
||||
_EmissionIntensity("Intensity", Range( 0 , 2)) = 1
|
||||
[Space(35)][Header(Mask Properties)][Toggle]_EnableDetailMask("Enable", Float) = 0
|
||||
[Space(15)][Toggle]_VisualizeMask("Visualize Mask", Float) = 0
|
||||
[Space(15)][Toggle]_EnableTriplanarProjection("Enable Triplanar Projection", Float) = 1
|
||||
[KeywordEnum(ObjectSpace,WorldSpace)] _TriplanarSpaceProjection("Space Projection", Float) = 0
|
||||
_TriplanarFalloff("Falloff", Float) = 20
|
||||
_TriplanarXYTilingXYZWOffsetXY1("Triplanar --> XY(TilingXY) - ZW(OffsetXY) ", Vector) = (1,1,0,0)
|
||||
[Toggle]_InvertMask("Invert Mask", Float) = 0
|
||||
_DetailMask("Detail Mask", 2D) = "white" {}
|
||||
_IntensityMask("Intensity", Range( 0 , 1)) = 1
|
||||
[Space(15)]_ContrastDetailMap("Contrast", Float) = 0
|
||||
_SpreadDetailMap("Spread", Float) = 0
|
||||
[Space(35)][Header(Detail Properties)][Space(15)][Toggle]_BlendmodeOverlay("Blend mode Overlay", Float) = 0
|
||||
[Space(35)]_DetailColor("Color", Color) = (1,1,1,0)
|
||||
_DetailAlbedoMap("Base Color", 2D) = "white" {}
|
||||
_DetailSaturation("Saturation", Float) = 0
|
||||
_DetailBrightness("Brightness", Range( 1 , 8)) = 1
|
||||
[HideInInspector] _texcoord( "", 2D ) = "white" {}
|
||||
[Space(35)][Toggle]_BlendMainNormal("Blend Main Normal", Float) = 0
|
||||
_DetailNormalMap("Normal Map", 2D) = "bump" {}
|
||||
_DetailNormalMapScale("Scale", Float) = 0.3
|
||||
[Space(35)]_DetailSpecularColor("Specular Color", Color) = (1,1,1,0)
|
||||
_DetailSpecGlossMap("Specular Map -->(Smoothness A)", 2D) = "white" {}
|
||||
_DetailSpecularIntensity("Specular Intensity", Range( 0 , 2)) = 0.2
|
||||
_DetailGlossiness("Smoothness", Range( 0 , 2)) = 0.5
|
||||
[Space(10)][KeywordEnum(SpecularAlpha,AlbedoAlpha)] _DetailSource("Source", Float) = 0
|
||||
[Space(15)][Toggle]_UseAoFromMainProperties("Use Ao From Main Properties", Float) = 1
|
||||
[Toggle]_UseEmissionFromMainProperties("Use Emission From Main Properties", Float) = 1
|
||||
[Space(35)][Header(Cutout Properties)][Space(15)][Toggle]_InvertCutout("Invert ", Float) = 0
|
||||
[Toggle]_UseBaseColorAlpha("Use BaseColor Alpha", Float) = 0
|
||||
_CutoutMap("Cutout Mask", 2D) = "white" {}
|
||||
[HideInInspector] __dirty( "", Int ) = 1
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags{ "RenderType" = "Opaque" "Queue" = "AlphaTest+0" "IsEmissive" = "true" }
|
||||
Cull[_Cull]
|
||||
ZWrite[_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
CGINCLUDE
|
||||
#include "UnityCG.cginc"
|
||||
#include "UnityStandardUtils.cginc"
|
||||
#include "UnityShaderVariables.cginc"
|
||||
#include "UnityPBSLighting.cginc"
|
||||
#include "Lighting.cginc"
|
||||
#pragma target 3.0
|
||||
#pragma multi_compile_instancing
|
||||
#pragma shader_feature_local _TRIPLANARSPACEPROJECTION_OBJECTSPACE _TRIPLANARSPACEPROJECTION_WORLDSPACE
|
||||
#pragma shader_feature_local _SOURCE_SPECULARALPHA _SOURCE_BASECOLORALPHA
|
||||
#pragma shader_feature_local _DETAILSOURCE_SPECULARALPHA _DETAILSOURCE_ALBEDOALPHA
|
||||
#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 viewDir;
|
||||
INTERNAL_DATA
|
||||
half ASEVFace : VFACE;
|
||||
float3 worldPos;
|
||||
float3 worldNormal;
|
||||
};
|
||||
|
||||
uniform float _BlendMainNormal;
|
||||
uniform sampler2D _BumpMap;
|
||||
uniform float4 _BumpMap_ST;
|
||||
uniform float4 _GlobalXYTilingXYZWOffsetXY;
|
||||
uniform sampler2D _ParallaxMap;
|
||||
uniform float4 _ParallaxMap_ST;
|
||||
uniform float _Parallax;
|
||||
uniform float _BumpScale;
|
||||
uniform sampler2D _DetailNormalMap;
|
||||
uniform float4 _DetailNormalMap_ST;
|
||||
uniform float _DetailNormalMapScale;
|
||||
uniform float _EnableDetailMask;
|
||||
uniform float _ContrastDetailMap;
|
||||
uniform float _InvertMask;
|
||||
uniform float _EnableTriplanarProjection;
|
||||
uniform sampler2D _DetailMask;
|
||||
uniform float4 _TriplanarXYTilingXYZWOffsetXY1;
|
||||
uniform float _SpreadDetailMap;
|
||||
uniform float _IntensityMask;
|
||||
uniform float _VisualizeMask;
|
||||
uniform float _BlendmodeOverlay;
|
||||
uniform float _Brightness;
|
||||
uniform float4 _Color;
|
||||
uniform sampler2D _MainTex;
|
||||
uniform float4 _MainTex_ST;
|
||||
uniform float _Saturation;
|
||||
uniform float _DetailBrightness;
|
||||
uniform float4 _DetailColor;
|
||||
uniform sampler2D _DetailAlbedoMap;
|
||||
uniform float4 _DetailAlbedoMap_ST;
|
||||
uniform float _DetailSaturation;
|
||||
uniform float _UseEmissionFromMainProperties;
|
||||
uniform float4 _EmissionColor;
|
||||
uniform sampler2D _EmissionMap;
|
||||
uniform float4 _EmissionMap_ST;
|
||||
uniform float _EmissionIntensity;
|
||||
uniform float4 _SpecularColor;
|
||||
uniform sampler2D _SpecGlossMap;
|
||||
uniform float4 _SpecGlossMap_ST;
|
||||
uniform float _SpecularIntensity;
|
||||
uniform float4 _DetailSpecularColor;
|
||||
uniform sampler2D _DetailSpecGlossMap;
|
||||
uniform float4 _DetailSpecGlossMap_ST;
|
||||
uniform float _DetailSpecularIntensity;
|
||||
uniform float _Glossiness;
|
||||
uniform float _InvertABaseColor;
|
||||
uniform float _DetailGlossiness;
|
||||
uniform float _UseAoFromMainProperties;
|
||||
uniform sampler2D _OcclusionMap;
|
||||
uniform float4 _OcclusionMap_ST;
|
||||
uniform float _AoIntensity;
|
||||
uniform float _InvertCutout;
|
||||
uniform float _UseBaseColorAlpha;
|
||||
uniform sampler2D _CutoutMap;
|
||||
uniform float4 _CutoutMap_ST;
|
||||
uniform float _Cutoff = 0.5;
|
||||
|
||||
UNITY_INSTANCING_BUFFER_START(CiconiaStudioCS_StandardBuiltinStandardSpecularsetupCutout)
|
||||
UNITY_DEFINE_INSTANCED_PROP(float, _TriplanarFalloff)
|
||||
#define _TriplanarFalloff_arr CiconiaStudioCS_StandardBuiltinStandardSpecularsetupCutout
|
||||
UNITY_INSTANCING_BUFFER_END(CiconiaStudioCS_StandardBuiltinStandardSpecularsetupCutout)
|
||||
|
||||
|
||||
inline float4 TriplanarSampling396( 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;
|
||||
}
|
||||
|
||||
|
||||
float4 CalculateContrast( float contrastValue, float4 colorTarget )
|
||||
{
|
||||
float t = 0.5 * ( 1.0 - contrastValue );
|
||||
return mul( float4x4( contrastValue,0,0,t, 0,contrastValue,0,t, 0,0,contrastValue,t, 0,0,0,1 ), colorTarget );
|
||||
}
|
||||
|
||||
void surf( Input i , inout SurfaceOutputStandardSpecular o )
|
||||
{
|
||||
float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw;
|
||||
float2 break26_g635 = uv_BumpMap;
|
||||
float GlobalTilingX11 = ( _GlobalXYTilingXYZWOffsetXY.x - 1.0 );
|
||||
float GlobalTilingY8 = ( _GlobalXYTilingXYZWOffsetXY.y - 1.0 );
|
||||
float2 appendResult14_g635 = (float2(( break26_g635.x * GlobalTilingX11 ) , ( break26_g635.y * GlobalTilingY8 )));
|
||||
float GlobalOffsetX10 = _GlobalXYTilingXYZWOffsetXY.z;
|
||||
float GlobalOffsetY9 = _GlobalXYTilingXYZWOffsetXY.w;
|
||||
float2 appendResult13_g635 = (float2(( break26_g635.x + GlobalOffsetX10 ) , ( break26_g635.y + GlobalOffsetY9 )));
|
||||
float2 uv_ParallaxMap = i.uv_texcoord * _ParallaxMap_ST.xy + _ParallaxMap_ST.zw;
|
||||
float2 break26_g469 = uv_ParallaxMap;
|
||||
float2 appendResult14_g469 = (float2(( break26_g469.x * GlobalTilingX11 ) , ( break26_g469.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g469 = (float2(( break26_g469.x + GlobalOffsetX10 ) , ( break26_g469.y + GlobalOffsetY9 )));
|
||||
float4 temp_cast_0 = (tex2D( _ParallaxMap, ( appendResult14_g469 + appendResult13_g469 ) ).g).xxxx;
|
||||
float2 paralaxOffset36_g468 = ParallaxOffset( temp_cast_0.x , _Parallax , i.viewDir );
|
||||
float2 switchResult47_g468 = (((i.ASEVFace>0)?(paralaxOffset36_g468):(0.0)));
|
||||
float2 Parallaxe369 = switchResult47_g468;
|
||||
float3 temp_output_245_0 = UnpackScaleNormal( tex2D( _BumpMap, ( ( appendResult14_g635 + appendResult13_g635 ) + Parallaxe369 ) ), _BumpScale );
|
||||
float2 uv_DetailNormalMap = i.uv_texcoord * _DetailNormalMap_ST.xy + _DetailNormalMap_ST.zw;
|
||||
float3 NormalDetail155 = UnpackScaleNormal( tex2D( _DetailNormalMap, uv_DetailNormalMap ), _DetailNormalMapScale );
|
||||
float4 temp_cast_2 = (0.0).xxxx;
|
||||
float2 appendResult394 = (float2(_TriplanarXYTilingXYZWOffsetXY1.x , _TriplanarXYTilingXYZWOffsetXY1.y));
|
||||
float _TriplanarFalloff_Instance = UNITY_ACCESS_INSTANCED_PROP(_TriplanarFalloff_arr, _TriplanarFalloff);
|
||||
float3 ase_worldPos = i.worldPos;
|
||||
float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) );
|
||||
float3 ase_vertex3Pos = mul( unity_WorldToObject, float4( i.worldPos , 1 ) );
|
||||
float3 ase_vertexNormal = mul( unity_WorldToObject, float4( ase_worldNormal, 0 ) );
|
||||
#if defined(_TRIPLANARSPACEPROJECTION_OBJECTSPACE)
|
||||
float3 staticSwitch389 = ase_vertex3Pos;
|
||||
#elif defined(_TRIPLANARSPACEPROJECTION_WORLDSPACE)
|
||||
float3 staticSwitch389 = ase_worldPos;
|
||||
#else
|
||||
float3 staticSwitch389 = ase_vertex3Pos;
|
||||
#endif
|
||||
float2 appendResult388 = (float2(_TriplanarXYTilingXYZWOffsetXY1.z , _TriplanarXYTilingXYZWOffsetXY1.w));
|
||||
float4 triplanar396 = TriplanarSampling396( _DetailMask, ( staticSwitch389 + float3( appendResult388 , 0.0 ) ), ase_vertexNormal, _TriplanarFalloff_Instance, appendResult394, 1.0, 0 );
|
||||
float4 clampResult409 = clamp( ( CalculateContrast(( _ContrastDetailMap + 1.0 ),(( _InvertMask )?( ( 1.0 - (( _EnableTriplanarProjection )?( triplanar396 ):( tex2D( _DetailMask, i.uv_texcoord ) )) ) ):( (( _EnableTriplanarProjection )?( triplanar396 ):( tex2D( _DetailMask, i.uv_texcoord ) )) ))) + -_SpreadDetailMap ) , float4( 0,0,0,0 ) , float4( 1,1,1,0 ) );
|
||||
float MaskIntensity408 = _IntensityMask;
|
||||
float4 Mask158 = (( _EnableDetailMask )?( ( clampResult409 * MaskIntensity408 ) ):( temp_cast_2 ));
|
||||
float3 lerpResult137 = lerp( temp_output_245_0 , NormalDetail155 , Mask158.rgb);
|
||||
float3 lerpResult205 = lerp( temp_output_245_0 , BlendNormals( temp_output_245_0 , NormalDetail155 ) , Mask158.rgb);
|
||||
float3 Normal27 = (( _BlendMainNormal )?( lerpResult205 ):( lerpResult137 ));
|
||||
o.Normal = Normal27;
|
||||
float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw;
|
||||
float2 break26_g630 = uv_MainTex;
|
||||
float2 appendResult14_g630 = (float2(( break26_g630.x * GlobalTilingX11 ) , ( break26_g630.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g630 = (float2(( break26_g630.x + GlobalOffsetX10 ) , ( break26_g630.y + GlobalOffsetY9 )));
|
||||
float4 tex2DNode7_g629 = tex2D( _MainTex, ( ( appendResult14_g630 + appendResult13_g630 ) + Parallaxe369 ) );
|
||||
float clampResult27_g629 = clamp( _Saturation , -1.0 , 100.0 );
|
||||
float3 desaturateInitialColor29_g629 = ( _Color * tex2DNode7_g629 ).rgb;
|
||||
float desaturateDot29_g629 = dot( desaturateInitialColor29_g629, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar29_g629 = lerp( desaturateInitialColor29_g629, desaturateDot29_g629.xxx, -clampResult27_g629 );
|
||||
float4 temp_output_338_0 = CalculateContrast(_Brightness,float4( desaturateVar29_g629 , 0.0 ));
|
||||
float2 uv_DetailAlbedoMap = i.uv_texcoord * _DetailAlbedoMap_ST.xy + _DetailAlbedoMap_ST.zw;
|
||||
float4 tex2DNode7_g612 = tex2D( _DetailAlbedoMap, uv_DetailAlbedoMap );
|
||||
float clampResult27_g612 = clamp( _DetailSaturation , -1.0 , 100.0 );
|
||||
float3 desaturateInitialColor29_g612 = ( _DetailColor * tex2DNode7_g612 ).rgb;
|
||||
float desaturateDot29_g612 = dot( desaturateInitialColor29_g612, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar29_g612 = lerp( desaturateInitialColor29_g612, desaturateDot29_g612.xxx, -clampResult27_g612 );
|
||||
float4 AlbedoDetail153 = CalculateContrast(_DetailBrightness,float4( desaturateVar29_g612 , 0.0 ));
|
||||
float4 lerpResult343 = lerp( temp_output_338_0 , AlbedoDetail153 , Mask158);
|
||||
float4 blendOpSrc15_g642 = temp_output_338_0;
|
||||
float4 blendOpDest15_g642 = lerpResult343;
|
||||
float4 lerpBlendMode15_g642 = lerp(blendOpDest15_g642,(( blendOpDest15_g642 > 0.5 ) ? ( 1.0 - 2.0 * ( 1.0 - blendOpDest15_g642 ) * ( 1.0 - blendOpSrc15_g642 ) ) : ( 2.0 * blendOpDest15_g642 * blendOpSrc15_g642 ) ),Mask158.x);
|
||||
float4 Albedo26 = (( _VisualizeMask )?( Mask158 ):( (( _BlendmodeOverlay )?( ( saturate( lerpBlendMode15_g642 )) ):( lerpResult343 )) ));
|
||||
o.Albedo = Albedo26.rgb;
|
||||
float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw;
|
||||
float2 break26_g639 = uv_EmissionMap;
|
||||
float2 appendResult14_g639 = (float2(( break26_g639.x * GlobalTilingX11 ) , ( break26_g639.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g639 = (float2(( break26_g639.x + GlobalOffsetX10 ) , ( break26_g639.y + GlobalOffsetY9 )));
|
||||
float4 temp_output_248_0 = ( _EmissionColor * tex2D( _EmissionMap, ( ( appendResult14_g639 + appendResult13_g639 ) + Parallaxe369 ) ) * _EmissionIntensity );
|
||||
float4 temp_cast_21 = (0.0).xxxx;
|
||||
float4 lerpResult190 = lerp( temp_output_248_0 , temp_cast_21 , Mask158);
|
||||
float4 Emission110 = (( _UseEmissionFromMainProperties )?( temp_output_248_0 ):( lerpResult190 ));
|
||||
o.Emission = Emission110.rgb;
|
||||
float2 uv_SpecGlossMap = i.uv_texcoord * _SpecGlossMap_ST.xy + _SpecGlossMap_ST.zw;
|
||||
float2 break26_g641 = uv_SpecGlossMap;
|
||||
float2 appendResult14_g641 = (float2(( break26_g641.x * GlobalTilingX11 ) , ( break26_g641.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g641 = (float2(( break26_g641.x + GlobalOffsetX10 ) , ( break26_g641.y + GlobalOffsetY9 )));
|
||||
float4 tex2DNode3_g640 = tex2D( _SpecGlossMap, ( ( appendResult14_g641 + appendResult13_g641 ) + Parallaxe369 ) );
|
||||
float2 uv_DetailSpecGlossMap = i.uv_texcoord * _DetailSpecGlossMap_ST.xy + _DetailSpecGlossMap_ST.zw;
|
||||
float4 tex2DNode3_g633 = tex2D( _DetailSpecGlossMap, uv_DetailSpecGlossMap );
|
||||
float4 DetailMetallic176 = ( _DetailSpecularColor * tex2DNode3_g633 * _DetailSpecularIntensity );
|
||||
float4 lerpResult179 = lerp( ( _SpecularColor * tex2DNode3_g640 * _SpecularIntensity ) , DetailMetallic176 , Mask158);
|
||||
float4 Specular41 = lerpResult179;
|
||||
o.Specular = Specular41.rgb;
|
||||
float BaseColorAlpha46 = (( _InvertABaseColor )?( ( 1.0 - tex2DNode7_g629.a ) ):( tex2DNode7_g629.a ));
|
||||
#if defined(_SOURCE_SPECULARALPHA)
|
||||
float staticSwitch31_g640 = ( tex2DNode3_g640.a * _Glossiness );
|
||||
#elif defined(_SOURCE_BASECOLORALPHA)
|
||||
float staticSwitch31_g640 = ( _Glossiness * BaseColorAlpha46 );
|
||||
#else
|
||||
float staticSwitch31_g640 = ( tex2DNode3_g640.a * _Glossiness );
|
||||
#endif
|
||||
float DetailBaseColorAlpha170 = tex2DNode7_g612.a;
|
||||
#if defined(_DETAILSOURCE_SPECULARALPHA)
|
||||
float staticSwitch31_g633 = ( tex2DNode3_g633.a * _DetailGlossiness );
|
||||
#elif defined(_DETAILSOURCE_ALBEDOALPHA)
|
||||
float staticSwitch31_g633 = ( _DetailGlossiness * DetailBaseColorAlpha170 );
|
||||
#else
|
||||
float staticSwitch31_g633 = ( tex2DNode3_g633.a * _DetailGlossiness );
|
||||
#endif
|
||||
float DetailSmoothness175 = staticSwitch31_g633;
|
||||
float lerpResult182 = lerp( staticSwitch31_g640 , DetailSmoothness175 , Mask158.r);
|
||||
float Smoothness40 = lerpResult182;
|
||||
o.Smoothness = Smoothness40;
|
||||
float2 uv_OcclusionMap = i.uv_texcoord * _OcclusionMap_ST.xy + _OcclusionMap_ST.zw;
|
||||
float2 break26_g637 = uv_OcclusionMap;
|
||||
float2 appendResult14_g637 = (float2(( break26_g637.x * GlobalTilingX11 ) , ( break26_g637.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g637 = (float2(( break26_g637.x + GlobalOffsetX10 ) , ( break26_g637.y + GlobalOffsetY9 )));
|
||||
float blendOpSrc2_g636 = tex2D( _OcclusionMap, ( ( appendResult14_g637 + appendResult13_g637 ) + Parallaxe369 ) ).r;
|
||||
float blendOpDest2_g636 = ( 1.0 - _AoIntensity );
|
||||
float temp_output_247_0 = ( saturate( ( 1.0 - ( 1.0 - blendOpSrc2_g636 ) * ( 1.0 - blendOpDest2_g636 ) ) ));
|
||||
float lerpResult185 = lerp( temp_output_247_0 , 1.0 , Mask158.r);
|
||||
float AmbientOcclusion94 = (( _UseAoFromMainProperties )?( temp_output_247_0 ):( lerpResult185 ));
|
||||
o.Occlusion = AmbientOcclusion94;
|
||||
o.Alpha = 1;
|
||||
float2 uv_CutoutMap = i.uv_texcoord * _CutoutMap_ST.xy + _CutoutMap_ST.zw;
|
||||
float4 tex2DNode8_g643 = tex2D( _CutoutMap, uv_CutoutMap );
|
||||
float4 temp_cast_26 = (BaseColorAlpha46).xxxx;
|
||||
float4 temp_cast_27 = (BaseColorAlpha46).xxxx;
|
||||
float4 clampResult24_g643 = clamp( (( _InvertCutout )?( ( 1.0 - (( _UseBaseColorAlpha )?( temp_cast_27 ):( tex2DNode8_g643 )) ) ):( (( _UseBaseColorAlpha )?( temp_cast_26 ):( tex2DNode8_g643 )) )) , float4( 0,0,0,0 ) , float4( 1,0,0,0 ) );
|
||||
float4 Cutout352 = clampResult24_g643;
|
||||
clip( Cutout352.r - _Cutoff );
|
||||
}
|
||||
|
||||
ENDCG
|
||||
CGPROGRAM
|
||||
#pragma surface surf StandardSpecular 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.viewDir = IN.tSpace0.xyz * worldViewDir.x + IN.tSpace1.xyz * worldViewDir.y + IN.tSpace2.xyz * worldViewDir.z;
|
||||
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;
|
||||
SurfaceOutputStandardSpecular o;
|
||||
UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandardSpecular, o )
|
||||
surf( surfIN, o );
|
||||
#if defined( CAN_SKIP_VPOS )
|
||||
float2 vpos = IN.pos;
|
||||
#endif
|
||||
SHADOW_CASTER_FRAGMENT( IN )
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
Fallback "Diffuse"
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1f53b2e079258874d987bc2948630b78
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,377 @@
|
|||
Shader "Ciconia Studio/CS_Standard/Builtin/Standard (Specular setup)/Opaque"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[Space(35)][Header(Surface Options )]
|
||||
[Space(15)][Enum(Off,2,On,0)] _Cull("Double Sided", Float) = 0 //"Back"
|
||||
[Enum(Off,0,On,1)] _ZWrite("ZWrite", Float) = 1.0 //"On"
|
||||
[Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4 //"LessEqual"
|
||||
|
||||
[Space(35)][Header(Main Properties )][Space(15)]_GlobalXYTilingXYZWOffsetXY("Global --> XY(TilingXY) - ZW(OffsetXY)", Vector) = (1,1,0,0)
|
||||
_Color("Color", Color) = (1,1,1,0)
|
||||
[Toggle]_InvertABaseColor("Invert Alpha", Float) = 0
|
||||
_MainTex("Base Color", 2D) = "white" {}
|
||||
_Saturation("Saturation", Float) = 0
|
||||
_Brightness("Brightness", Range( 1 , 8)) = 1
|
||||
[Space(35)]_BumpMap("Normal Map", 2D) = "bump" {}
|
||||
_BumpScale("Normal Intensity", Float) = 0.3
|
||||
[Space(35)]_SpecularColor("Specular Color", Color) = (1,1,1,0)
|
||||
_SpecGlossMap("Specular Map -->(Smoothness A)", 2D) = "white" {}
|
||||
_SpecularIntensity("Specular Intensity", Range( 0 , 2)) = 0.2
|
||||
_Glossiness("Smoothness", Range( 0 , 2)) = 0.5
|
||||
[Space(10)][KeywordEnum(SpecularAlpha,BaseColorAlpha)] _Source("Source", Float) = 0
|
||||
[Space(35)]_ParallaxMap("Height Map", 2D) = "white" {}
|
||||
_Parallax("Height Scale", Range( -0.1 , 0.1)) = 0
|
||||
[Space(35)]_OcclusionMap("Ambient Occlusion Map", 2D) = "white" {}
|
||||
_AoIntensity("Ao Intensity", Range( 0 , 2)) = 1
|
||||
[HDR][Space(45)]_EmissionColor("Emission Color", Color) = (0,0,0,0)
|
||||
_EmissionMap("Emission Map", 2D) = "white" {}
|
||||
_EmissionIntensity("Intensity", Range( 0 , 2)) = 1
|
||||
[Space(35)][Header(Mask Properties)][Toggle]_EnableDetailMask("Enable", Float) = 0
|
||||
[Space(15)][Toggle]_VisualizeMask("Visualize Mask", Float) = 0
|
||||
[Space(15)][Toggle]_EnableTriplanarProjection("Enable Triplanar Projection", Float) = 1
|
||||
[KeywordEnum(ObjectSpace,WorldSpace)] _TriplanarSpaceProjection("Space Projection", Float) = 0
|
||||
_TriplanarFalloff("Falloff", Float) = 20
|
||||
_TriplanarXYTilingXYZWOffsetXY("Triplanar --> XY(TilingXY) - ZW(OffsetXY) ", Vector) = (1,1,0,0)
|
||||
[Toggle]_InvertMask("Invert Mask", Float) = 0
|
||||
_DetailMask("Detail Mask", 2D) = "white" {}
|
||||
_IntensityMask("Intensity", Range( 0 , 1)) = 1
|
||||
[Space(15)]_ContrastDetailMap("Contrast", Float) = 0
|
||||
_SpreadDetailMap("Spread", Float) = 0
|
||||
[Space(35)][Header(Detail Properties)][Space(15)][Toggle]_BlendmodeOverlay("Blend mode Overlay", Float) = 0
|
||||
[Space(35)]_DetailColor("Color", Color) = (1,1,1,0)
|
||||
_DetailAlbedoMap("Base Color", 2D) = "white" {}
|
||||
_DetailSaturation("Saturation", Float) = 0
|
||||
_DetailBrightness("Brightness", Range( 1 , 8)) = 1
|
||||
[Space(35)][Toggle]_BlendMainNormal("Blend Main Normal", Float) = 0
|
||||
[HideInInspector] _texcoord( "", 2D ) = "white" {}
|
||||
_DetailNormalMap("Normal Map", 2D) = "bump" {}
|
||||
_DetailNormalMapScale("Scale", Float) = 0.3
|
||||
[Space(35)]_DetailSpecularColor("Specular Color", Color) = (1,1,1,0)
|
||||
_DetailSpecGlossMap("Specular Map -->(Smoothness A)", 2D) = "white" {}
|
||||
_DetailSpecularIntensity("Specular Intensity", Range( 0 , 2)) = 0.2
|
||||
_DetailGlossiness("Smoothness", Range( 0 , 2)) = 0.5
|
||||
[Space(10)][KeywordEnum(SpecularAlpha,AlbedoAlpha)] _DetailSource("Source", Float) = 0
|
||||
[Space(15)][Toggle]_UseAoFromMainProperties("Use Ao From Main Properties", Float) = 1
|
||||
[Toggle]_UseEmissionFromMainProperties("Use Emission From Main Properties", Float) = 1
|
||||
[HideInInspector] __dirty( "", Int ) = 1
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags{ "RenderType" = "Opaque" "Queue" = "Geometry+0" "IsEmissive" = "true" }
|
||||
Cull[_Cull]
|
||||
ZWrite[_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
CGINCLUDE
|
||||
#include "UnityCG.cginc"
|
||||
#include "UnityStandardUtils.cginc"
|
||||
#include "UnityShaderVariables.cginc"
|
||||
#include "UnityPBSLighting.cginc"
|
||||
#include "Lighting.cginc"
|
||||
#pragma target 3.0
|
||||
#pragma multi_compile_instancing
|
||||
#pragma shader_feature_local _TRIPLANARSPACEPROJECTION_OBJECTSPACE _TRIPLANARSPACEPROJECTION_WORLDSPACE
|
||||
#pragma shader_feature_local _SOURCE_SPECULARALPHA _SOURCE_BASECOLORALPHA
|
||||
#pragma shader_feature_local _DETAILSOURCE_SPECULARALPHA _DETAILSOURCE_ALBEDOALPHA
|
||||
#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 viewDir;
|
||||
INTERNAL_DATA
|
||||
half ASEVFace : VFACE;
|
||||
float3 worldPos;
|
||||
float3 worldNormal;
|
||||
};
|
||||
|
||||
uniform float _BlendMainNormal;
|
||||
uniform sampler2D _BumpMap;
|
||||
uniform float4 _BumpMap_ST;
|
||||
uniform float4 _GlobalXYTilingXYZWOffsetXY;
|
||||
uniform sampler2D _ParallaxMap;
|
||||
uniform float4 _ParallaxMap_ST;
|
||||
uniform float _Parallax;
|
||||
uniform float _BumpScale;
|
||||
uniform sampler2D _DetailNormalMap;
|
||||
uniform float4 _DetailNormalMap_ST;
|
||||
uniform float _DetailNormalMapScale;
|
||||
uniform float _EnableDetailMask;
|
||||
uniform float _ContrastDetailMap;
|
||||
uniform float _InvertMask;
|
||||
uniform float _EnableTriplanarProjection;
|
||||
uniform sampler2D _DetailMask;
|
||||
uniform float4 _TriplanarXYTilingXYZWOffsetXY;
|
||||
uniform float _SpreadDetailMap;
|
||||
uniform float _IntensityMask;
|
||||
uniform float _VisualizeMask;
|
||||
uniform float _BlendmodeOverlay;
|
||||
uniform float _Brightness;
|
||||
uniform float4 _Color;
|
||||
uniform sampler2D _MainTex;
|
||||
uniform float4 _MainTex_ST;
|
||||
uniform float _Saturation;
|
||||
uniform float _DetailBrightness;
|
||||
uniform float4 _DetailColor;
|
||||
uniform sampler2D _DetailAlbedoMap;
|
||||
uniform float4 _DetailAlbedoMap_ST;
|
||||
uniform float _DetailSaturation;
|
||||
uniform float _UseEmissionFromMainProperties;
|
||||
uniform float4 _EmissionColor;
|
||||
uniform sampler2D _EmissionMap;
|
||||
uniform float4 _EmissionMap_ST;
|
||||
uniform float _EmissionIntensity;
|
||||
uniform float4 _SpecularColor;
|
||||
uniform sampler2D _SpecGlossMap;
|
||||
uniform float4 _SpecGlossMap_ST;
|
||||
uniform float _SpecularIntensity;
|
||||
uniform float4 _DetailSpecularColor;
|
||||
uniform sampler2D _DetailSpecGlossMap;
|
||||
uniform float4 _DetailSpecGlossMap_ST;
|
||||
uniform float _DetailSpecularIntensity;
|
||||
uniform float _Glossiness;
|
||||
uniform float _InvertABaseColor;
|
||||
uniform float _DetailGlossiness;
|
||||
uniform float _UseAoFromMainProperties;
|
||||
uniform sampler2D _OcclusionMap;
|
||||
uniform float4 _OcclusionMap_ST;
|
||||
uniform float _AoIntensity;
|
||||
|
||||
UNITY_INSTANCING_BUFFER_START(CiconiaStudioCS_StandardBuiltinStandardSpecularsetupOpaque)
|
||||
UNITY_DEFINE_INSTANCED_PROP(float, _TriplanarFalloff)
|
||||
#define _TriplanarFalloff_arr CiconiaStudioCS_StandardBuiltinStandardSpecularsetupOpaque
|
||||
UNITY_INSTANCING_BUFFER_END(CiconiaStudioCS_StandardBuiltinStandardSpecularsetupOpaque)
|
||||
|
||||
|
||||
inline float4 TriplanarSampling399( 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;
|
||||
}
|
||||
|
||||
|
||||
float4 CalculateContrast( float contrastValue, float4 colorTarget )
|
||||
{
|
||||
float t = 0.5 * ( 1.0 - contrastValue );
|
||||
return mul( float4x4( contrastValue,0,0,t, 0,contrastValue,0,t, 0,0,contrastValue,t, 0,0,0,1 ), colorTarget );
|
||||
}
|
||||
|
||||
void surf( Input i , inout SurfaceOutputStandardSpecular o )
|
||||
{
|
||||
float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw;
|
||||
float2 break26_g619 = uv_BumpMap;
|
||||
float GlobalTilingX11 = ( _GlobalXYTilingXYZWOffsetXY.x - 1.0 );
|
||||
float GlobalTilingY8 = ( _GlobalXYTilingXYZWOffsetXY.y - 1.0 );
|
||||
float2 appendResult14_g619 = (float2(( break26_g619.x * GlobalTilingX11 ) , ( break26_g619.y * GlobalTilingY8 )));
|
||||
float GlobalOffsetX10 = _GlobalXYTilingXYZWOffsetXY.z;
|
||||
float GlobalOffsetY9 = _GlobalXYTilingXYZWOffsetXY.w;
|
||||
float2 appendResult13_g619 = (float2(( break26_g619.x + GlobalOffsetX10 ) , ( break26_g619.y + GlobalOffsetY9 )));
|
||||
float2 uv_ParallaxMap = i.uv_texcoord * _ParallaxMap_ST.xy + _ParallaxMap_ST.zw;
|
||||
float2 break26_g496 = uv_ParallaxMap;
|
||||
float2 appendResult14_g496 = (float2(( break26_g496.x * GlobalTilingX11 ) , ( break26_g496.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g496 = (float2(( break26_g496.x + GlobalOffsetX10 ) , ( break26_g496.y + GlobalOffsetY9 )));
|
||||
float4 temp_cast_0 = (tex2D( _ParallaxMap, ( appendResult14_g496 + appendResult13_g496 ) ).g).xxxx;
|
||||
float2 paralaxOffset36_g495 = ParallaxOffset( temp_cast_0.x , _Parallax , i.viewDir );
|
||||
float2 switchResult47_g495 = (((i.ASEVFace>0)?(paralaxOffset36_g495):(0.0)));
|
||||
float2 Parallaxe359 = switchResult47_g495;
|
||||
float3 temp_output_245_0 = UnpackScaleNormal( tex2D( _BumpMap, ( ( appendResult14_g619 + appendResult13_g619 ) + Parallaxe359 ) ), _BumpScale );
|
||||
float2 uv_DetailNormalMap = i.uv_texcoord * _DetailNormalMap_ST.xy + _DetailNormalMap_ST.zw;
|
||||
float3 NormalDetail155 = UnpackScaleNormal( tex2D( _DetailNormalMap, uv_DetailNormalMap ), _DetailNormalMapScale );
|
||||
float4 temp_cast_2 = (0.0).xxxx;
|
||||
float2 appendResult395 = (float2(_TriplanarXYTilingXYZWOffsetXY.x , _TriplanarXYTilingXYZWOffsetXY.y));
|
||||
float _TriplanarFalloff_Instance = UNITY_ACCESS_INSTANCED_PROP(_TriplanarFalloff_arr, _TriplanarFalloff);
|
||||
float3 ase_worldPos = i.worldPos;
|
||||
float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) );
|
||||
float3 ase_vertex3Pos = mul( unity_WorldToObject, float4( i.worldPos , 1 ) );
|
||||
float3 ase_vertexNormal = mul( unity_WorldToObject, float4( ase_worldNormal, 0 ) );
|
||||
#if defined(_TRIPLANARSPACEPROJECTION_OBJECTSPACE)
|
||||
float3 staticSwitch392 = ase_vertex3Pos;
|
||||
#elif defined(_TRIPLANARSPACEPROJECTION_WORLDSPACE)
|
||||
float3 staticSwitch392 = ase_worldPos;
|
||||
#else
|
||||
float3 staticSwitch392 = ase_vertex3Pos;
|
||||
#endif
|
||||
float2 appendResult391 = (float2(_TriplanarXYTilingXYZWOffsetXY.z , _TriplanarXYTilingXYZWOffsetXY.w));
|
||||
float4 triplanar399 = TriplanarSampling399( _DetailMask, ( staticSwitch392 + float3( appendResult391 , 0.0 ) ), ase_vertexNormal, _TriplanarFalloff_Instance, appendResult395, 1.0, 0 );
|
||||
float4 clampResult413 = clamp( ( CalculateContrast(( _ContrastDetailMap + 1.0 ),(( _InvertMask )?( ( 1.0 - (( _EnableTriplanarProjection )?( triplanar399 ):( tex2D( _DetailMask, i.uv_texcoord ) )) ) ):( (( _EnableTriplanarProjection )?( triplanar399 ):( tex2D( _DetailMask, i.uv_texcoord ) )) ))) + -_SpreadDetailMap ) , float4( 0,0,0,0 ) , float4( 1,1,1,0 ) );
|
||||
float MaskIntensity411 = _IntensityMask;
|
||||
float4 Mask158 = (( _EnableDetailMask )?( ( clampResult413 * MaskIntensity411 ) ):( temp_cast_2 ));
|
||||
float3 lerpResult137 = lerp( temp_output_245_0 , NormalDetail155 , Mask158.rgb);
|
||||
float3 lerpResult205 = lerp( temp_output_245_0 , BlendNormals( temp_output_245_0 , NormalDetail155 ) , Mask158.rgb);
|
||||
float3 Normal27 = (( _BlendMainNormal )?( lerpResult205 ):( lerpResult137 ));
|
||||
o.Normal = Normal27;
|
||||
float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw;
|
||||
float2 break26_g616 = uv_MainTex;
|
||||
float2 appendResult14_g616 = (float2(( break26_g616.x * GlobalTilingX11 ) , ( break26_g616.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g616 = (float2(( break26_g616.x + GlobalOffsetX10 ) , ( break26_g616.y + GlobalOffsetY9 )));
|
||||
float4 tex2DNode7_g615 = tex2D( _MainTex, ( ( appendResult14_g616 + appendResult13_g616 ) + Parallaxe359 ) );
|
||||
float clampResult27_g615 = clamp( _Saturation , -1.0 , 100.0 );
|
||||
float3 desaturateInitialColor29_g615 = ( _Color * tex2DNode7_g615 ).rgb;
|
||||
float desaturateDot29_g615 = dot( desaturateInitialColor29_g615, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar29_g615 = lerp( desaturateInitialColor29_g615, desaturateDot29_g615.xxx, -clampResult27_g615 );
|
||||
float4 temp_output_372_0 = CalculateContrast(_Brightness,float4( desaturateVar29_g615 , 0.0 ));
|
||||
float2 uv_DetailAlbedoMap = i.uv_texcoord * _DetailAlbedoMap_ST.xy + _DetailAlbedoMap_ST.zw;
|
||||
float4 tex2DNode7_g613 = tex2D( _DetailAlbedoMap, uv_DetailAlbedoMap );
|
||||
float clampResult27_g613 = clamp( _DetailSaturation , -1.0 , 100.0 );
|
||||
float3 desaturateInitialColor29_g613 = ( _DetailColor * tex2DNode7_g613 ).rgb;
|
||||
float desaturateDot29_g613 = dot( desaturateInitialColor29_g613, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar29_g613 = lerp( desaturateInitialColor29_g613, desaturateDot29_g613.xxx, -clampResult27_g613 );
|
||||
float4 AlbedoDetail153 = CalculateContrast(_DetailBrightness,float4( desaturateVar29_g613 , 0.0 ));
|
||||
float4 lerpResult343 = lerp( temp_output_372_0 , AlbedoDetail153 , Mask158);
|
||||
float4 blendOpSrc15_g626 = temp_output_372_0;
|
||||
float4 blendOpDest15_g626 = lerpResult343;
|
||||
float4 lerpBlendMode15_g626 = lerp(blendOpDest15_g626,(( blendOpDest15_g626 > 0.5 ) ? ( 1.0 - 2.0 * ( 1.0 - blendOpDest15_g626 ) * ( 1.0 - blendOpSrc15_g626 ) ) : ( 2.0 * blendOpDest15_g626 * blendOpSrc15_g626 ) ),Mask158.x);
|
||||
float4 Albedo26 = (( _VisualizeMask )?( Mask158 ):( (( _BlendmodeOverlay )?( ( saturate( lerpBlendMode15_g626 )) ):( lerpResult343 )) ));
|
||||
o.Albedo = Albedo26.rgb;
|
||||
float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw;
|
||||
float2 break26_g625 = uv_EmissionMap;
|
||||
float2 appendResult14_g625 = (float2(( break26_g625.x * GlobalTilingX11 ) , ( break26_g625.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g625 = (float2(( break26_g625.x + GlobalOffsetX10 ) , ( break26_g625.y + GlobalOffsetY9 )));
|
||||
float4 temp_output_248_0 = ( _EmissionColor * tex2D( _EmissionMap, ( ( appendResult14_g625 + appendResult13_g625 ) + Parallaxe359 ) ) * _EmissionIntensity );
|
||||
float4 temp_cast_21 = (0.0).xxxx;
|
||||
float4 lerpResult190 = lerp( temp_output_248_0 , temp_cast_21 , Mask158);
|
||||
float4 Emission110 = (( _UseEmissionFromMainProperties )?( temp_output_248_0 ):( lerpResult190 ));
|
||||
o.Emission = Emission110.rgb;
|
||||
float2 uv_SpecGlossMap = i.uv_texcoord * _SpecGlossMap_ST.xy + _SpecGlossMap_ST.zw;
|
||||
float2 break26_g628 = uv_SpecGlossMap;
|
||||
float2 appendResult14_g628 = (float2(( break26_g628.x * GlobalTilingX11 ) , ( break26_g628.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g628 = (float2(( break26_g628.x + GlobalOffsetX10 ) , ( break26_g628.y + GlobalOffsetY9 )));
|
||||
float4 tex2DNode3_g627 = tex2D( _SpecGlossMap, ( ( appendResult14_g628 + appendResult13_g628 ) + Parallaxe359 ) );
|
||||
float2 uv_DetailSpecGlossMap = i.uv_texcoord * _DetailSpecGlossMap_ST.xy + _DetailSpecGlossMap_ST.zw;
|
||||
float4 tex2DNode3_g620 = tex2D( _DetailSpecGlossMap, uv_DetailSpecGlossMap );
|
||||
float4 DetailMetallic176 = ( _DetailSpecularColor * tex2DNode3_g620 * _DetailSpecularIntensity );
|
||||
float4 lerpResult179 = lerp( ( _SpecularColor * tex2DNode3_g627 * _SpecularIntensity ) , DetailMetallic176 , Mask158);
|
||||
float4 Specular41 = lerpResult179;
|
||||
o.Specular = Specular41.rgb;
|
||||
float BaseColorAlpha46 = (( _InvertABaseColor )?( ( 1.0 - tex2DNode7_g615.a ) ):( tex2DNode7_g615.a ));
|
||||
#if defined(_SOURCE_SPECULARALPHA)
|
||||
float staticSwitch31_g627 = ( tex2DNode3_g627.a * _Glossiness );
|
||||
#elif defined(_SOURCE_BASECOLORALPHA)
|
||||
float staticSwitch31_g627 = ( _Glossiness * BaseColorAlpha46 );
|
||||
#else
|
||||
float staticSwitch31_g627 = ( tex2DNode3_g627.a * _Glossiness );
|
||||
#endif
|
||||
float DetailBaseColorAlpha170 = tex2DNode7_g613.a;
|
||||
#if defined(_DETAILSOURCE_SPECULARALPHA)
|
||||
float staticSwitch31_g620 = ( tex2DNode3_g620.a * _DetailGlossiness );
|
||||
#elif defined(_DETAILSOURCE_ALBEDOALPHA)
|
||||
float staticSwitch31_g620 = ( _DetailGlossiness * DetailBaseColorAlpha170 );
|
||||
#else
|
||||
float staticSwitch31_g620 = ( tex2DNode3_g620.a * _DetailGlossiness );
|
||||
#endif
|
||||
float DetailSmoothness175 = staticSwitch31_g620;
|
||||
float lerpResult182 = lerp( staticSwitch31_g627 , DetailSmoothness175 , Mask158.r);
|
||||
float Smoothness40 = lerpResult182;
|
||||
o.Smoothness = Smoothness40;
|
||||
float2 uv_OcclusionMap = i.uv_texcoord * _OcclusionMap_ST.xy + _OcclusionMap_ST.zw;
|
||||
float2 break26_g623 = uv_OcclusionMap;
|
||||
float2 appendResult14_g623 = (float2(( break26_g623.x * GlobalTilingX11 ) , ( break26_g623.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g623 = (float2(( break26_g623.x + GlobalOffsetX10 ) , ( break26_g623.y + GlobalOffsetY9 )));
|
||||
float blendOpSrc2_g622 = tex2D( _OcclusionMap, ( ( appendResult14_g623 + appendResult13_g623 ) + Parallaxe359 ) ).r;
|
||||
float blendOpDest2_g622 = ( 1.0 - _AoIntensity );
|
||||
float temp_output_369_0 = ( saturate( ( 1.0 - ( 1.0 - blendOpSrc2_g622 ) * ( 1.0 - blendOpDest2_g622 ) ) ));
|
||||
float lerpResult185 = lerp( temp_output_369_0 , 1.0 , Mask158.r);
|
||||
float AmbientOcclusion94 = (( _UseAoFromMainProperties )?( temp_output_369_0 ):( lerpResult185 ));
|
||||
o.Occlusion = AmbientOcclusion94;
|
||||
o.Alpha = 1;
|
||||
}
|
||||
|
||||
ENDCG
|
||||
CGPROGRAM
|
||||
#pragma surface surf StandardSpecular 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.viewDir = IN.tSpace0.xyz * worldViewDir.x + IN.tSpace1.xyz * worldViewDir.y + IN.tSpace2.xyz * worldViewDir.z;
|
||||
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;
|
||||
SurfaceOutputStandardSpecular o;
|
||||
UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandardSpecular, o )
|
||||
surf( surfIN, o );
|
||||
#if defined( CAN_SKIP_VPOS )
|
||||
float2 vpos = IN.pos;
|
||||
#endif
|
||||
SHADOW_CASTER_FRAGMENT( IN )
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
Fallback "Diffuse"
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 63a90426d42b698448966291201d6716
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,399 @@
|
|||
Shader "Ciconia Studio/CS_Standard/Builtin/Standard (Specular setup)/Transparent"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[Space(35)][Header(Surface Options )]
|
||||
[Space(15)][Enum(Off,2,On,0)] _Cull("Double Sided", Float) = 0 //"Back"
|
||||
[Enum(Off,0,On,1)] _ZWrite("ZWrite", Float) = 1.0 //"On"
|
||||
[Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4 //"LessEqual"
|
||||
|
||||
[Space(35)][Header(Main Properties )][Space(15)]_GlobalXYTilingXYZWOffsetXY("Global --> XY(TilingXY) - ZW(OffsetXY)", Vector) = (1,1,0,0)
|
||||
_Color("Color", Color) = (1,1,1,0)
|
||||
[Toggle]_InvertABaseColor("Invert Alpha", Float) = 0
|
||||
_MainTex("Base Color", 2D) = "white" {}
|
||||
_Saturation("Saturation", Float) = 0
|
||||
_Brightness("Brightness", Range( 1 , 8)) = 1
|
||||
[Space(35)]_BumpMap("Normal Map", 2D) = "bump" {}
|
||||
_BumpScale("Normal Intensity", Float) = 0.3
|
||||
[Space(35)]_SpecularColor("Specular Color", Color) = (1,1,1,0)
|
||||
_SpecGlossMap("Specular Map -->(Smoothness A)", 2D) = "white" {}
|
||||
_SpecularIntensity("Specular Intensity", Range( 0 , 2)) = 0.2
|
||||
_Glossiness("Smoothness", Range( 0 , 2)) = 0.5
|
||||
[Space(10)][KeywordEnum(SpecularAlpha,BaseColorAlpha)] _Source("Source", Float) = 0
|
||||
[Space(35)]_ParallaxMap("Height Map", 2D) = "white" {}
|
||||
_Parallax("Height Scale", Range( -0.1 , 0.1)) = 0
|
||||
[Space(35)]_OcclusionMap("Ambient Occlusion Map", 2D) = "white" {}
|
||||
_AoIntensity("Ao Intensity", Range( 0 , 2)) = 1
|
||||
[HDR][Space(45)]_EmissionColor("Emission Color", Color) = (0,0,0,0)
|
||||
_EmissionMap("Emission Map", 2D) = "white" {}
|
||||
_EmissionIntensity("Intensity", Range( 0 , 2)) = 1
|
||||
[Space(35)][Header(Mask Properties)][Toggle]_EnableDetailMask("Enable", Float) = 0
|
||||
[Space(15)][Toggle]_VisualizeMask("Visualize Mask", Float) = 0
|
||||
[Space(15)][Toggle]_EnableTriplanarProjection("Enable Triplanar Projection", Float) = 1
|
||||
[KeywordEnum(ObjectSpace,WorldSpace)] _TriplanarSpaceProjection("Space Projection", Float) = 0
|
||||
_TriplanarFalloff("Falloff", Float) = 20
|
||||
_TriplanarXYTilingXYZWOffsetXY("Triplanar --> XY(TilingXY) - ZW(OffsetXY) ", Vector) = (1,1,0,0)
|
||||
[Toggle]_InvertMask("Invert Mask", Float) = 0
|
||||
_DetailMask("Detail Mask", 2D) = "white" {}
|
||||
_IntensityMask("Intensity", Range( 0 , 1)) = 1
|
||||
[Space(15)]_ContrastDetailMap("Contrast", Float) = 0
|
||||
_SpreadDetailMap("Spread", Float) = 0
|
||||
[Space(35)][Header(Detail Properties)][Space(15)][Toggle]_BlendmodeOverlay("Blend mode Overlay", Float) = 0
|
||||
[Space(35)]_DetailColor("Color", Color) = (1,1,1,0)
|
||||
_DetailAlbedoMap("Base Color", 2D) = "white" {}
|
||||
_DetailSaturation("Saturation", Float) = 0
|
||||
_DetailBrightness("Brightness", Range( 1 , 8)) = 1
|
||||
[Space(35)][Toggle]_BlendMainNormal("Blend Main Normal", Float) = 0
|
||||
[HideInInspector] _texcoord( "", 2D ) = "white" {}
|
||||
_DetailNormalMap("Normal Map", 2D) = "bump" {}
|
||||
_DetailNormalMapScale("Scale", Float) = 0.3
|
||||
[Space(35)]_DetailSpecularColor("Specular Color", Color) = (1,1,1,0)
|
||||
_DetailSpecGlossMap("Specular Map -->(Smoothness A)", 2D) = "white" {}
|
||||
_DetailSpecularIntensity("Specular Intensity", Range( 0 , 2)) = 0.2
|
||||
_DetailGlossiness("Smoothness", Range( 0 , 2)) = 0.5
|
||||
[Space(10)][KeywordEnum(SpecularAlpha,AlbedoAlpha)] _DetailSource("Source", Float) = 0
|
||||
[Space(15)][Toggle]_UseAoFromMainProperties("Use Ao From Main Properties", Float) = 1
|
||||
[Toggle]_UseEmissionFromMainProperties("Use Emission From Main Properties", Float) = 1
|
||||
[Space(35)][Header(Transparent Properties)][Space(15)][Toggle]_InvertTransparent("Invert ", Float) = 0
|
||||
[Toggle]_UseBaseColorAlpha("Use BaseColor Alpha", Float) = 0
|
||||
_TransparentMask("Transparent Mask", 2D) = "white" {}
|
||||
_IntensityTransparentMap("Opacity", Range( 0 , 1)) = 0
|
||||
[Space(15)]_ContrastTransparentMap("Contrast", Float) = 0
|
||||
_SpreadTransparentMap("Spread", Float) = 0
|
||||
[HideInInspector] __dirty( "", Int ) = 1
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags{ "RenderType" = "Transparent" "Queue" = "Transparent+0" "IgnoreProjector" = "True" "IsEmissive" = "true" }
|
||||
Cull[_Cull]
|
||||
ZWrite[_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
CGINCLUDE
|
||||
#include "UnityCG.cginc"
|
||||
#include "UnityStandardUtils.cginc"
|
||||
#include "UnityShaderVariables.cginc"
|
||||
#include "UnityPBSLighting.cginc"
|
||||
#include "Lighting.cginc"
|
||||
#pragma target 3.0
|
||||
#pragma multi_compile_instancing
|
||||
#pragma shader_feature_local _TRIPLANARSPACEPROJECTION_OBJECTSPACE _TRIPLANARSPACEPROJECTION_WORLDSPACE
|
||||
#pragma shader_feature_local _SOURCE_SPECULARALPHA _SOURCE_BASECOLORALPHA
|
||||
#pragma shader_feature_local _DETAILSOURCE_SPECULARALPHA _DETAILSOURCE_ALBEDOALPHA
|
||||
#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 viewDir;
|
||||
INTERNAL_DATA
|
||||
half ASEVFace : VFACE;
|
||||
float3 worldPos;
|
||||
float3 worldNormal;
|
||||
};
|
||||
|
||||
uniform float _BlendMainNormal;
|
||||
uniform sampler2D _BumpMap;
|
||||
uniform float4 _BumpMap_ST;
|
||||
uniform float4 _GlobalXYTilingXYZWOffsetXY;
|
||||
uniform sampler2D _ParallaxMap;
|
||||
uniform float4 _ParallaxMap_ST;
|
||||
uniform float _Parallax;
|
||||
uniform float _BumpScale;
|
||||
uniform sampler2D _DetailNormalMap;
|
||||
uniform float4 _DetailNormalMap_ST;
|
||||
uniform float _DetailNormalMapScale;
|
||||
uniform float _EnableDetailMask;
|
||||
uniform float _ContrastDetailMap;
|
||||
uniform float _InvertMask;
|
||||
uniform float _EnableTriplanarProjection;
|
||||
uniform sampler2D _DetailMask;
|
||||
uniform float4 _TriplanarXYTilingXYZWOffsetXY;
|
||||
uniform float _SpreadDetailMap;
|
||||
uniform float _IntensityMask;
|
||||
uniform float _VisualizeMask;
|
||||
uniform float _BlendmodeOverlay;
|
||||
uniform float _Brightness;
|
||||
uniform float4 _Color;
|
||||
uniform sampler2D _MainTex;
|
||||
uniform float4 _MainTex_ST;
|
||||
uniform float _Saturation;
|
||||
uniform float _DetailBrightness;
|
||||
uniform float4 _DetailColor;
|
||||
uniform sampler2D _DetailAlbedoMap;
|
||||
uniform float4 _DetailAlbedoMap_ST;
|
||||
uniform float _DetailSaturation;
|
||||
uniform float _UseEmissionFromMainProperties;
|
||||
uniform float4 _EmissionColor;
|
||||
uniform sampler2D _EmissionMap;
|
||||
uniform float4 _EmissionMap_ST;
|
||||
uniform float _EmissionIntensity;
|
||||
uniform float4 _SpecularColor;
|
||||
uniform sampler2D _SpecGlossMap;
|
||||
uniform float4 _SpecGlossMap_ST;
|
||||
uniform float _SpecularIntensity;
|
||||
uniform float4 _DetailSpecularColor;
|
||||
uniform sampler2D _DetailSpecGlossMap;
|
||||
uniform float4 _DetailSpecGlossMap_ST;
|
||||
uniform float _DetailSpecularIntensity;
|
||||
uniform float _Glossiness;
|
||||
uniform float _InvertABaseColor;
|
||||
uniform float _DetailGlossiness;
|
||||
uniform float _UseAoFromMainProperties;
|
||||
uniform sampler2D _OcclusionMap;
|
||||
uniform float4 _OcclusionMap_ST;
|
||||
uniform float _AoIntensity;
|
||||
uniform float _ContrastTransparentMap;
|
||||
uniform float _InvertTransparent;
|
||||
uniform float _UseBaseColorAlpha;
|
||||
uniform sampler2D _TransparentMask;
|
||||
uniform float4 _TransparentMask_ST;
|
||||
uniform float _SpreadTransparentMap;
|
||||
uniform float _IntensityTransparentMap;
|
||||
|
||||
UNITY_INSTANCING_BUFFER_START(CiconiaStudioCS_StandardBuiltinStandardSpecularsetupTransparent)
|
||||
UNITY_DEFINE_INSTANCED_PROP(float, _TriplanarFalloff)
|
||||
#define _TriplanarFalloff_arr CiconiaStudioCS_StandardBuiltinStandardSpecularsetupTransparent
|
||||
UNITY_INSTANCING_BUFFER_END(CiconiaStudioCS_StandardBuiltinStandardSpecularsetupTransparent)
|
||||
|
||||
|
||||
inline float4 TriplanarSampling393( 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;
|
||||
}
|
||||
|
||||
|
||||
float4 CalculateContrast( float contrastValue, float4 colorTarget )
|
||||
{
|
||||
float t = 0.5 * ( 1.0 - contrastValue );
|
||||
return mul( float4x4( contrastValue,0,0,t, 0,contrastValue,0,t, 0,0,contrastValue,t, 0,0,0,1 ), colorTarget );
|
||||
}
|
||||
|
||||
void surf( Input i , inout SurfaceOutputStandardSpecular o )
|
||||
{
|
||||
float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw;
|
||||
float2 break26_g619 = uv_BumpMap;
|
||||
float GlobalTilingX11 = ( _GlobalXYTilingXYZWOffsetXY.x - 1.0 );
|
||||
float GlobalTilingY8 = ( _GlobalXYTilingXYZWOffsetXY.y - 1.0 );
|
||||
float2 appendResult14_g619 = (float2(( break26_g619.x * GlobalTilingX11 ) , ( break26_g619.y * GlobalTilingY8 )));
|
||||
float GlobalOffsetX10 = _GlobalXYTilingXYZWOffsetXY.z;
|
||||
float GlobalOffsetY9 = _GlobalXYTilingXYZWOffsetXY.w;
|
||||
float2 appendResult13_g619 = (float2(( break26_g619.x + GlobalOffsetX10 ) , ( break26_g619.y + GlobalOffsetY9 )));
|
||||
float2 uv_ParallaxMap = i.uv_texcoord * _ParallaxMap_ST.xy + _ParallaxMap_ST.zw;
|
||||
float2 break26_g467 = uv_ParallaxMap;
|
||||
float2 appendResult14_g467 = (float2(( break26_g467.x * GlobalTilingX11 ) , ( break26_g467.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g467 = (float2(( break26_g467.x + GlobalOffsetX10 ) , ( break26_g467.y + GlobalOffsetY9 )));
|
||||
float4 temp_cast_0 = (tex2D( _ParallaxMap, ( appendResult14_g467 + appendResult13_g467 ) ).g).xxxx;
|
||||
float2 paralaxOffset36_g466 = ParallaxOffset( temp_cast_0.x , _Parallax , i.viewDir );
|
||||
float2 switchResult47_g466 = (((i.ASEVFace>0)?(paralaxOffset36_g466):(0.0)));
|
||||
float2 Parallaxe368 = switchResult47_g466;
|
||||
float3 temp_output_245_0 = UnpackScaleNormal( tex2D( _BumpMap, ( ( appendResult14_g619 + appendResult13_g619 ) + Parallaxe368 ) ), _BumpScale );
|
||||
float2 uv_DetailNormalMap = i.uv_texcoord * _DetailNormalMap_ST.xy + _DetailNormalMap_ST.zw;
|
||||
float3 NormalDetail155 = UnpackScaleNormal( tex2D( _DetailNormalMap, uv_DetailNormalMap ), _DetailNormalMapScale );
|
||||
float4 temp_cast_2 = (0.0).xxxx;
|
||||
float2 appendResult389 = (float2(_TriplanarXYTilingXYZWOffsetXY.x , _TriplanarXYTilingXYZWOffsetXY.y));
|
||||
float _TriplanarFalloff_Instance = UNITY_ACCESS_INSTANCED_PROP(_TriplanarFalloff_arr, _TriplanarFalloff);
|
||||
float3 ase_worldPos = i.worldPos;
|
||||
float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) );
|
||||
float3 ase_vertex3Pos = mul( unity_WorldToObject, float4( i.worldPos , 1 ) );
|
||||
float3 ase_vertexNormal = mul( unity_WorldToObject, float4( ase_worldNormal, 0 ) );
|
||||
#if defined(_TRIPLANARSPACEPROJECTION_OBJECTSPACE)
|
||||
float3 staticSwitch386 = ase_vertex3Pos;
|
||||
#elif defined(_TRIPLANARSPACEPROJECTION_WORLDSPACE)
|
||||
float3 staticSwitch386 = ase_worldPos;
|
||||
#else
|
||||
float3 staticSwitch386 = ase_vertex3Pos;
|
||||
#endif
|
||||
float2 appendResult385 = (float2(_TriplanarXYTilingXYZWOffsetXY.z , _TriplanarXYTilingXYZWOffsetXY.w));
|
||||
float4 triplanar393 = TriplanarSampling393( _DetailMask, ( staticSwitch386 + float3( appendResult385 , 0.0 ) ), ase_vertexNormal, _TriplanarFalloff_Instance, appendResult389, 1.0, 0 );
|
||||
float4 clampResult407 = clamp( ( CalculateContrast(( _ContrastDetailMap + 1.0 ),(( _InvertMask )?( ( 1.0 - (( _EnableTriplanarProjection )?( triplanar393 ):( tex2D( _DetailMask, i.uv_texcoord ) )) ) ):( (( _EnableTriplanarProjection )?( triplanar393 ):( tex2D( _DetailMask, i.uv_texcoord ) )) ))) + -_SpreadDetailMap ) , float4( 0,0,0,0 ) , float4( 1,1,1,0 ) );
|
||||
float MaskIntensity405 = _IntensityMask;
|
||||
float4 Mask158 = (( _EnableDetailMask )?( ( clampResult407 * MaskIntensity405 ) ):( temp_cast_2 ));
|
||||
float3 lerpResult137 = lerp( temp_output_245_0 , NormalDetail155 , Mask158.rgb);
|
||||
float3 lerpResult205 = lerp( temp_output_245_0 , BlendNormals( temp_output_245_0 , NormalDetail155 ) , Mask158.rgb);
|
||||
float3 Normal27 = (( _BlendMainNormal )?( lerpResult205 ):( lerpResult137 ));
|
||||
o.Normal = Normal27;
|
||||
float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw;
|
||||
float2 break26_g614 = uv_MainTex;
|
||||
float2 appendResult14_g614 = (float2(( break26_g614.x * GlobalTilingX11 ) , ( break26_g614.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g614 = (float2(( break26_g614.x + GlobalOffsetX10 ) , ( break26_g614.y + GlobalOffsetY9 )));
|
||||
float4 tex2DNode7_g613 = tex2D( _MainTex, ( ( appendResult14_g614 + appendResult13_g614 ) + Parallaxe368 ) );
|
||||
float clampResult27_g613 = clamp( _Saturation , -1.0 , 100.0 );
|
||||
float3 desaturateInitialColor29_g613 = ( _Color * tex2DNode7_g613 ).rgb;
|
||||
float desaturateDot29_g613 = dot( desaturateInitialColor29_g613, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar29_g613 = lerp( desaturateInitialColor29_g613, desaturateDot29_g613.xxx, -clampResult27_g613 );
|
||||
float4 temp_output_338_0 = CalculateContrast(_Brightness,float4( desaturateVar29_g613 , 0.0 ));
|
||||
float2 uv_DetailAlbedoMap = i.uv_texcoord * _DetailAlbedoMap_ST.xy + _DetailAlbedoMap_ST.zw;
|
||||
float4 tex2DNode7_g468 = tex2D( _DetailAlbedoMap, uv_DetailAlbedoMap );
|
||||
float clampResult27_g468 = clamp( _DetailSaturation , -1.0 , 100.0 );
|
||||
float3 desaturateInitialColor29_g468 = ( _DetailColor * tex2DNode7_g468 ).rgb;
|
||||
float desaturateDot29_g468 = dot( desaturateInitialColor29_g468, float3( 0.299, 0.587, 0.114 ));
|
||||
float3 desaturateVar29_g468 = lerp( desaturateInitialColor29_g468, desaturateDot29_g468.xxx, -clampResult27_g468 );
|
||||
float4 AlbedoDetail153 = CalculateContrast(_DetailBrightness,float4( desaturateVar29_g468 , 0.0 ));
|
||||
float4 lerpResult343 = lerp( temp_output_338_0 , AlbedoDetail153 , Mask158);
|
||||
float4 blendOpSrc15_g624 = temp_output_338_0;
|
||||
float4 blendOpDest15_g624 = lerpResult343;
|
||||
float4 lerpBlendMode15_g624 = lerp(blendOpDest15_g624,(( blendOpDest15_g624 > 0.5 ) ? ( 1.0 - 2.0 * ( 1.0 - blendOpDest15_g624 ) * ( 1.0 - blendOpSrc15_g624 ) ) : ( 2.0 * blendOpDest15_g624 * blendOpSrc15_g624 ) ),Mask158.x);
|
||||
float4 Albedo26 = (( _VisualizeMask )?( Mask158 ):( (( _BlendmodeOverlay )?( ( saturate( lerpBlendMode15_g624 )) ):( lerpResult343 )) ));
|
||||
o.Albedo = Albedo26.rgb;
|
||||
float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw;
|
||||
float2 break26_g623 = uv_EmissionMap;
|
||||
float2 appendResult14_g623 = (float2(( break26_g623.x * GlobalTilingX11 ) , ( break26_g623.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g623 = (float2(( break26_g623.x + GlobalOffsetX10 ) , ( break26_g623.y + GlobalOffsetY9 )));
|
||||
float4 temp_output_248_0 = ( _EmissionColor * tex2D( _EmissionMap, ( ( appendResult14_g623 + appendResult13_g623 ) + Parallaxe368 ) ) * _EmissionIntensity );
|
||||
float4 temp_cast_21 = (0.0).xxxx;
|
||||
float4 lerpResult190 = lerp( temp_output_248_0 , temp_cast_21 , Mask158);
|
||||
float4 Emission110 = (( _UseEmissionFromMainProperties )?( temp_output_248_0 ):( lerpResult190 ));
|
||||
o.Emission = Emission110.rgb;
|
||||
float2 uv_SpecGlossMap = i.uv_texcoord * _SpecGlossMap_ST.xy + _SpecGlossMap_ST.zw;
|
||||
float2 break26_g626 = uv_SpecGlossMap;
|
||||
float2 appendResult14_g626 = (float2(( break26_g626.x * GlobalTilingX11 ) , ( break26_g626.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g626 = (float2(( break26_g626.x + GlobalOffsetX10 ) , ( break26_g626.y + GlobalOffsetY9 )));
|
||||
float4 tex2DNode3_g625 = tex2D( _SpecGlossMap, ( ( appendResult14_g626 + appendResult13_g626 ) + Parallaxe368 ) );
|
||||
float2 uv_DetailSpecGlossMap = i.uv_texcoord * _DetailSpecGlossMap_ST.xy + _DetailSpecGlossMap_ST.zw;
|
||||
float4 tex2DNode3_g617 = tex2D( _DetailSpecGlossMap, uv_DetailSpecGlossMap );
|
||||
float4 DetailMetallic176 = ( _DetailSpecularColor * tex2DNode3_g617 * _DetailSpecularIntensity );
|
||||
float4 lerpResult179 = lerp( ( _SpecularColor * tex2DNode3_g625 * _SpecularIntensity ) , DetailMetallic176 , Mask158);
|
||||
float4 Specular41 = lerpResult179;
|
||||
o.Specular = Specular41.rgb;
|
||||
float BaseColorAlpha46 = (( _InvertABaseColor )?( ( 1.0 - tex2DNode7_g613.a ) ):( tex2DNode7_g613.a ));
|
||||
#if defined(_SOURCE_SPECULARALPHA)
|
||||
float staticSwitch31_g625 = ( tex2DNode3_g625.a * _Glossiness );
|
||||
#elif defined(_SOURCE_BASECOLORALPHA)
|
||||
float staticSwitch31_g625 = ( _Glossiness * BaseColorAlpha46 );
|
||||
#else
|
||||
float staticSwitch31_g625 = ( tex2DNode3_g625.a * _Glossiness );
|
||||
#endif
|
||||
float DetailBaseColorAlpha170 = tex2DNode7_g468.a;
|
||||
#if defined(_DETAILSOURCE_SPECULARALPHA)
|
||||
float staticSwitch31_g617 = ( tex2DNode3_g617.a * _DetailGlossiness );
|
||||
#elif defined(_DETAILSOURCE_ALBEDOALPHA)
|
||||
float staticSwitch31_g617 = ( _DetailGlossiness * DetailBaseColorAlpha170 );
|
||||
#else
|
||||
float staticSwitch31_g617 = ( tex2DNode3_g617.a * _DetailGlossiness );
|
||||
#endif
|
||||
float DetailSmoothness175 = staticSwitch31_g617;
|
||||
float lerpResult182 = lerp( staticSwitch31_g625 , DetailSmoothness175 , Mask158.r);
|
||||
float Smoothness40 = lerpResult182;
|
||||
o.Smoothness = Smoothness40;
|
||||
float2 uv_OcclusionMap = i.uv_texcoord * _OcclusionMap_ST.xy + _OcclusionMap_ST.zw;
|
||||
float2 break26_g621 = uv_OcclusionMap;
|
||||
float2 appendResult14_g621 = (float2(( break26_g621.x * GlobalTilingX11 ) , ( break26_g621.y * GlobalTilingY8 )));
|
||||
float2 appendResult13_g621 = (float2(( break26_g621.x + GlobalOffsetX10 ) , ( break26_g621.y + GlobalOffsetY9 )));
|
||||
float blendOpSrc2_g620 = tex2D( _OcclusionMap, ( ( appendResult14_g621 + appendResult13_g621 ) + Parallaxe368 ) ).r;
|
||||
float blendOpDest2_g620 = ( 1.0 - _AoIntensity );
|
||||
float temp_output_247_0 = ( saturate( ( 1.0 - ( 1.0 - blendOpSrc2_g620 ) * ( 1.0 - blendOpDest2_g620 ) ) ));
|
||||
float lerpResult185 = lerp( temp_output_247_0 , 1.0 , Mask158.r);
|
||||
float AmbientOcclusion94 = (( _UseAoFromMainProperties )?( temp_output_247_0 ):( lerpResult185 ));
|
||||
o.Occlusion = AmbientOcclusion94;
|
||||
float2 uv_TransparentMask = i.uv_texcoord * _TransparentMask_ST.xy + _TransparentMask_ST.zw;
|
||||
float4 tex2DNode8_g627 = tex2D( _TransparentMask, uv_TransparentMask );
|
||||
float4 temp_cast_26 = (BaseColorAlpha46).xxxx;
|
||||
float4 temp_cast_27 = (BaseColorAlpha46).xxxx;
|
||||
float4 clampResult24_g627 = clamp( ( CalculateContrast(( _ContrastTransparentMap + 1.0 ),(( _InvertTransparent )?( ( 1.0 - (( _UseBaseColorAlpha )?( temp_cast_27 ):( tex2DNode8_g627 )) ) ):( (( _UseBaseColorAlpha )?( temp_cast_26 ):( tex2DNode8_g627 )) ))) + -_SpreadTransparentMap ) , float4( 0,0,0,0 ) , float4( 1,0,0,0 ) );
|
||||
float4 Transparent358 = ( clampResult24_g627 * ( 1.0 - _IntensityTransparentMap ) );
|
||||
o.Alpha = Transparent358.r;
|
||||
}
|
||||
|
||||
ENDCG
|
||||
CGPROGRAM
|
||||
#pragma surface surf StandardSpecular alpha:fade 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"
|
||||
sampler3D _DitherMaskLOD;
|
||||
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.viewDir = IN.tSpace0.xyz * worldViewDir.x + IN.tSpace1.xyz * worldViewDir.y + IN.tSpace2.xyz * worldViewDir.z;
|
||||
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;
|
||||
SurfaceOutputStandardSpecular o;
|
||||
UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandardSpecular, o )
|
||||
surf( surfIN, o );
|
||||
#if defined( CAN_SKIP_VPOS )
|
||||
float2 vpos = IN.pos;
|
||||
#endif
|
||||
half alphaRef = tex3D( _DitherMaskLOD, float3( vpos.xy * 0.25, o.Alpha * 0.9375 ) ).a;
|
||||
clip( alphaRef - 0.01 );
|
||||
SHADOW_CASTER_FRAGMENT( IN )
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
Fallback "Diffuse"
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2914c939860ab3b40b0972bf8aedb87f
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,92 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 687d6d6147620e944aba985347bff722
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,22 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 09689778d91fc614e966f5cb098c3ba8
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 6
|
||||
defaultSettings:
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
preloadAudioData: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,92 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9ddf71e7ce9cf5b418db5946a6568c9c
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -13,14 +13,17 @@ MonoBehaviour:
|
|||
m_Name: MapInfo
|
||||
m_EditorClassIdentifier:
|
||||
name: Tostiman's test map
|
||||
version: 0.1.1
|
||||
homePage: https://www.nexusmods.com/derailvalley/mods/MOD-ID-HERE
|
||||
version: 0.2.0
|
||||
homePage: https://www.nexusmods.com/derailvalley/mods/798
|
||||
repository: https://git.tostiman.com/tostiman/dv-testimap/raw/branch/main/repository.json
|
||||
loadingGaugeHeight: 5
|
||||
loadingGaugeWidth: 4
|
||||
waterLevel: 0
|
||||
defaultSpawnPosition: {x: 126, y: 327, z: 125}
|
||||
defaultSpawnPosition: {x: 7500, y: 100, z: 7500}
|
||||
defaultSpawnRotation: {x: 0, y: 0, z: 0}
|
||||
worldBoundaryMargin: 5
|
||||
worldBoundaryMargin: 0
|
||||
useFixedMapImage: 0
|
||||
fixedMapImage: {fileID: 0}
|
||||
trackWidth: 5
|
||||
trackColor: {r: 0.80784315, g: 0.7647059, b: 0.5803922, a: 1}
|
||||
trackBackgroundWidth: 17
|
||||
|
@ -84,10 +87,11 @@ MonoBehaviour:
|
|||
m_Mode: 0
|
||||
m_NumColorKeys: 2
|
||||
m_NumAlphaKeys: 2
|
||||
showStationNamesOnMap: 1
|
||||
terrainLoadingRingSize: 4
|
||||
chunkSize: 1024
|
||||
worldLoadingRingSize: 2
|
||||
mapifyVersion: 0.4.0
|
||||
worldLoadingRingSize: 6
|
||||
mapifyVersion: 0.4.1
|
||||
worldSize: 1250
|
||||
terrainSize: 250
|
||||
terrainHeight: 0
|
||||
|
|
|
@ -129,7 +129,7 @@ MonoBehaviour:
|
|||
m_EditorClassIdentifier:
|
||||
asset: 52
|
||||
keepChildren: 0
|
||||
rotation: {x: 0, y: 0, z: 0}
|
||||
rotationOffset: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3957153289511670403
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
@ -129,7 +129,7 @@ MonoBehaviour:
|
|||
m_EditorClassIdentifier:
|
||||
asset: 54
|
||||
keepChildren: 0
|
||||
rotation: {x: 0, y: 0, z: 0}
|
||||
rotationOffset: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3957153289511670403
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
@ -25,7 +25,7 @@ PrefabInstance:
|
|||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3543013568023383394, guid: 0f09051f0758f351bb1b1f1602ec5b51,
|
||||
type: 3}
|
||||
propertyPath: rotation.y
|
||||
propertyPath: rotationOffset.y
|
||||
value: 90
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3543013568023383394, guid: 0f09051f0758f351bb1b1f1602ec5b51,
|
||||
|
|
|
@ -47,7 +47,7 @@ MonoBehaviour:
|
|||
m_EditorClassIdentifier:
|
||||
asset: 13
|
||||
keepChildren: 1
|
||||
rotation: {x: 0, y: 90, z: 0}
|
||||
rotationOffset: {x: 0, y: 90, z: 0}
|
||||
--- !u!33 &1285410329932861900
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
@ -47,6 +47,8 @@ MonoBehaviour:
|
|||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
asset: 16
|
||||
keepChildren: 1
|
||||
rotationOffset: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &8688684374492490991
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -170,25 +172,28 @@ MonoBehaviour:
|
|||
m_EditorClassIdentifier:
|
||||
stationName:
|
||||
stationID:
|
||||
color: {r: 0, g: 0, b: 0, a: 0}
|
||||
color: {r: 0, g: 0, b: 0, a: 1}
|
||||
teleportLocation: {fileID: 5087403294541507478}
|
||||
storageTrackNames: []
|
||||
transferInTrackNames: []
|
||||
transferOutTrackNames: []
|
||||
warehouseMachines: []
|
||||
bookletSpawnArea: {fileID: 0}
|
||||
yardCenter: {fileID: 0}
|
||||
bookletGenerationDistance: 150
|
||||
jobGenerationDistance: 500
|
||||
jobDestroyDistance: 600
|
||||
jobsCapacity: 30
|
||||
maxShuntingStorageTracks: 3
|
||||
minCarsPerJob: 3
|
||||
maxCarsPerJob: 20
|
||||
warehouseMachines: []
|
||||
inputCargoGroupsCount: 0
|
||||
maxShuntingStorageTracks: 3
|
||||
generateFreightHaul: 1
|
||||
generateLogisticalHaul: 1
|
||||
generateShuntingLoad: 1
|
||||
generateShuntingUnload: 1
|
||||
inputCargoGroups: []
|
||||
outputCargoGroups: []
|
||||
loadStartingJobSupported: 1
|
||||
haulStartingJobSupported: 1
|
||||
unloadStartingJobSupported: 1
|
||||
emptyHaulStartingJobSupported: 1
|
||||
inputCargoGroupsCount: 0
|
||||
storageTrackNames: []
|
||||
transferInTrackNames: []
|
||||
transferOutTrackNames: []
|
||||
visualizeJobGenerationRange: 0
|
||||
visualizeBookletGenerationDistance: 0
|
||||
visualizeJobDestroyDistance: 0
|
||||
|
|
BIN
Assets/Mapify/Scripts/MapifyEditor.dll (Stored with Git LFS)
BIN
Assets/Mapify/Scripts/MapifyEditor.dll (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,33 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b868070355200e2449668298f608d7bd
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,33 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5bc816fcb3d84e24091f0fcb4c990584
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,28 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ebf1975dc5c39b249a99a7f0cb5cf2b4
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 11500000, guid: 768a5a18fd6eb914f980bf85dd7b34ec, type: 3}
|
||||
importSettings:
|
||||
materials: 1
|
||||
shaderOverrides:
|
||||
metallic: {fileID: 4800000, guid: 057d08f5d01be134593d0fe0e40c1759, type: 3}
|
||||
metallicBlend: {fileID: 4800000, guid: 7258d825fa9aac6439f21eb173b880c6, type: 3}
|
||||
specular: {fileID: 4800000, guid: d28fc76bfd3057e4c8f1c6f0b91590c8, type: 3}
|
||||
specularBlend: {fileID: 4800000, guid: 475158e3052e5c4488fa32f8df9d7be7, type: 3}
|
||||
animationSettings:
|
||||
looping: 0
|
||||
frameRate: 24
|
||||
interpolationMode: -1
|
||||
compressBlendShapeKeyFrames: 1
|
||||
useLegacyClips: 0
|
||||
generateLightmapUVs: 0
|
||||
hardAngle: 88
|
||||
angleError: 8
|
||||
areaError: 15
|
||||
packMargin: 4
|
|
@ -0,0 +1,133 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: tent
|
||||
m_Shader: {fileID: 4800000, guid: 1f53b2e079258874d987bc2948630b78, type: 3}
|
||||
m_ShaderKeywords: _DETAILSOURCE_SPECULARALPHA _ENABLETRIPLANARPROJECTION_ON _METALLICGLOSSMAP
|
||||
_NORMALMAP _SOURCE_SPECULARALPHA _TRIPLANARSPACEPROJECTION_OBJECTSPACE _USEAOFROMMAINPROPERTIES_ON
|
||||
_USEEMISSIONFROMMAINPROPERTIES_ON
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 1114877306669140642, guid: ebf1975dc5c39b249a99a7f0cb5cf2b4,
|
||||
type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _CutoutMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailSpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: -7613457054433700299, guid: ebf1975dc5c39b249a99a7f0cb5cf2b4,
|
||||
type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 8009727818586853621, guid: ebf1975dc5c39b249a99a7f0cb5cf2b4,
|
||||
type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _texcoord:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _AoIntensity: 1
|
||||
- _BlendMainNormal: 0
|
||||
- _BlendmodeOverlay: 0
|
||||
- _Brightness: 1
|
||||
- _BumpScale: 1
|
||||
- _ContrastDetailMap: 0
|
||||
- _Cull: 0
|
||||
- _Cutoff: 0.5
|
||||
- _DetailBrightness: 1
|
||||
- _DetailGlossiness: 0.66
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DetailSaturation: 0
|
||||
- _DetailSource: 0
|
||||
- _DetailSpecularIntensity: 0.44
|
||||
- _DstBlend: 0
|
||||
- _EmissionIntensity: 1
|
||||
- _EnableDetailMask: 0
|
||||
- _EnableTriplanarProjection: 1
|
||||
- _GlossMapScale: 0.255
|
||||
- _Glossiness: 0.19
|
||||
- _GlossyReflections: 1
|
||||
- _IntensityMask: 1
|
||||
- _InvertABaseColor: 0
|
||||
- _InvertCutout: 0
|
||||
- _InvertMask: 0
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _Saturation: 0
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _Source: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SpecularIntensity: 0.16
|
||||
- _SpreadDetailMap: 0
|
||||
- _SrcBlend: 1
|
||||
- _TriplanarFalloff: 20
|
||||
- _TriplanarSpaceProjection: 0
|
||||
- _UVSec: 0
|
||||
- _UseAoFromMainProperties: 1
|
||||
- _UseBaseColorAlpha: 0
|
||||
- _UseEmissionFromMainProperties: 1
|
||||
- _VisualizeMask: 0
|
||||
- _ZTest: 4
|
||||
- _ZWrite: 1
|
||||
- __dirty: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.23584908, g: 0.23584908, b: 0.23584908, a: 1}
|
||||
- _DetailColor: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _DetailSpecularColor: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _GlobalXYTilingXYZWOffsetXY: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _SpecularColor: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _TriplanarXYTilingXYZWOffsetXY1: {r: 1, g: 1, b: 0, a: 0}
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c3161690b1d88424c8ed61ee08581e77
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -121,3 +121,97 @@ NavMeshSettings:
|
|||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &1701854318
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1701854322}
|
||||
- component: {fileID: 1701854321}
|
||||
- component: {fileID: 1701854320}
|
||||
- component: {fileID: 1701854319}
|
||||
m_Layer: 0
|
||||
m_Name: Plaftond
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!64 &1701854319
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1701854318}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &1701854320
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1701854318}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
--- !u!33 &1701854321
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1701854318}
|
||||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &1701854322
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1701854318}
|
||||
m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: 5210.995, y: 500, z: 4570.676}
|
||||
m_LocalScale: {x: 1000, y: 1000, z: 100}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
|
||||
|
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 3fe8a5c54a85a2a498f6204e4eb349a7
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5de633e1dec981a4b844e292b1e53a2f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6429e538656a08d41a3e02460c8dfc13
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 44acd9955fdd76a49a648d7c2272bd69
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: da9a02b3f70624049ae0f5179eb30676
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 801840c41f3ecb94b9f3c0edee270680
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d9c54628f9fbc9f4ca99e3cebc8eccd4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1636c5cfede58da4582e750104094eb9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ae3332787e54a364d926abe74ae8f72b
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f8eb33243268cac44b59c53b980c24a2
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 561885dd3e9e0b0439f2284ec0b19014
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bfba18e94636b5349b8614132b6ca8e0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b8e7e17c9cb754d4b89cf3ab3b88ae1e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e675c36829bfc3549981e25a5a318596
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5a565ba4c5263aa4f974ea7a0fb9b57d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6865f4caefa164e47b61c13d99fcdaee
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 63f1bda1a18818142888d31287a12e69
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5d4724db919f2904d8d8152931c323d4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 11ba0db2c577eb14e8bbbe984957830b
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 938e2dcc42841d643b95ea2d1a2d494a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 43f56178b416de24bb93f748770935bb
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 481af3608ff2c6c4e85a33123e61d79c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 36ea8970f1c99a244a43b28b89cf3b10
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8be791b00ceb93e49b76f819edc73dee
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 300eafb06a4dab646b73203f5cecd058
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: fe15ba39ac792bc4393a76aebb9abb97
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d1019eab04adc6c4f921ead3acd5196f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: fe3ae520e85334b47ac63f177e5248e8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 15600000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue