BetterWuhuIsland/Assets/LitMAS Water/LitMAS Water 2.5_Quest.shader

1291 lines
No EOL
57 KiB
GLSL

// Made with Amplify Shader Editor v1.9.1.2
// Available at the Unity Asset Store - http://u3d.as/y3X
// Force reimport: 2
Shader "AtlasShaders/LitMAS Water 2.5_Quest"
{
Properties
{
[HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
[HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
[ASEBegin][Header(Textures)][NoScaleOffset][Normal]_BumpMap("Normal", 2D) = "bump" {}
[Header((Non MV ONLY))]_NormalIntensity("Normal Intensity", Range( 0 , 10)) = 0.6
[Header((Non MV ONLY 0.1 Through 1 Recommended))]_NormalTiling("Normal Tiling", Vector) = (0.2,0.2,0,0)
[Header(Water Attributes)]_WaterSmoothness("Water Smoothness", Range( 0 , 1)) = 0.8
[HDR]_WaterColor("Water Color", Color) = (0.1333333,0.1333333,0.1333333,1)
_WaterSpeedA("Water Speed A", Range( -0.1 , 0.1)) = 0.01
_WaterSpeedB("Water Speed B", Range( -0.1 , 0.1)) = 0.01
[Space(20)][Header(BRDF Lut)][Space(10)][Toggle(_BRDFMAP)] BRDFMAP("Enable BRDF map", Float) = 0
[ASEEnd][NoScaleOffset][SingleLineTexture]g_tBRDFMap("BRDF map", 2D) = "white" {}
[Space(30)][Header(Screen Space Reflections)][Space(10)][Toggle(_NO_SSR)] _SSROff("Disable SSR", Float) = 0
[Header(This should be 0 for skinned meshes)]
_SSRTemporalMul("Temporal Accumulation Factor", Range(0, 2)) = 1.0
//[Toggle(_SM6_QUAD)] _SM6_Quad("Quad-avg SSR", Float) = 0
}
SubShader
{
LOD 0
Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" }
Blend One OneMinusSrcAlpha
ZWrite Off
Cull Off
ZTest LEqual
Offset 0 , 0
ColorMask RGBA
//LOD 100
Pass
{
Name "Forward"
Tags { "Lightmode"="UniversalForward" }
HLSLPROGRAM
#pragma multi_compile_fog
#define LITMAS_FEATURE_LIGHTMAPPING
#pragma multi_compile_fragment _ _VOLUMETRICS_ENABLED
#define LITMAS_FEATURE_EMISSION
#define PC_REFLECTION_PROBE_BLENDING
#define PC_REFLECTION_PROBE_BOX_PROJECTION
#define PC_SSAO
#define MOBILE_LIGHTS_VERTEX
#pragma multi_compile_instancing
#define PC_RECEIVE_SHADOWS
#define _ISTRANSPARENT
#define _SurfaceTransparent
#define ASE_SRP_VERSION -1
#pragma vertex vert
#pragma fragment frag
#pragma target 5.0
#define LITMAS_FEATURE_TS_NORMALS
#define LITMAS_FEATURE_SSR
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/PlatformCompiler.hlsl"
#if defined(SHADER_API_DESKTOP)
#endif
//StandardForward------------------------------------------------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
//
//
//-----------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
#define SHADERPASS SHADERPASS_FORWARD
#define _NORMAL_DROPOFF_TS 1
#define _EMISSION
#define _NORMALMAP 1
#if defined(SHADER_API_MOBILE)
#if defined(MOBILE_LIGHTS_VERTEX)
#define _ADDITIONAL_LIGHTS_VERTEX
#endif
#if defined(MOBILE_RECEIVE_SHADOWS)
#undef _RECEIVE_SHADOWS_OFF
#define _MAIN_LIGHT_SHADOWS
#define _ADDITIONAL_LIGHT_SHADOWS
#pragma multi_compile_fragment _ _MAIN_LIGHT_SHADOWS_CASCADE
#pragma multi_compile_fragment _ _ADDITIONAL_LIGHTS
#pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS
#define _SHADOWS_SOFT 1
#else
#define _RECEIVE_SHADOWS_OFF 1
#endif
#if defined(MOBILE_SSAO)
#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
#endif
#if defined(MOBILE_REFLECTION_PROBE_BLENDING)
#define _REFLECTION_PROBE_BLENDING
#endif
#if defined(MOBILE_REFLECTION_PROBE_BOX_PROJECTION)
#define _REFLECTION_PROBE_BOX_PROJECTION
#endif
#else
//#define DYNAMIC_SCREEN_SPACE_OCCLUSION
#if defined(PC_SSAO)
#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
#endif
//#define DYNAMIC_ADDITIONAL_LIGHTS
#if defined(PC_RECEIVE_SHADOWS)
#undef _RECEIVE_SHADOWS_OFF
#pragma multi_compile_fragment _ _MAIN_LIGHT_SHADOWS_CASCADE
#pragma multi_compile_fragment _ _ADDITIONAL_LIGHTS
//#define DYNAMIC_ADDITIONAL_LIGHT_SHADOWS
#pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS
#define _SHADOWS_SOFT 1
#else
#define _RECEIVE_SHADOWS_OFF 1
#endif
#if defined(PC_REFLECTION_PROBE_BLENDING)
#define _REFLECTION_PROBE_BLENDING
#endif
//#pragma shader_feature_fragment _REFLECTION_PROBE_BOX_PROJECTION
// We don't need a keyword for this! the w component of the probe position already branches box vs non-box, & so little cost on pc it doesn't matter
#if defined(PC_REFLECTION_PROBE_BOX_PROJECTION)
#define _REFLECTION_PROBE_BOX_PROJECTION
#endif
// Begin Injection STANDALONE_DEFINES from Injection_SSR.hlsl ----------------------------------------------------------
#pragma multi_compile _ _SLZ_SSR_ENABLED
#pragma shader_feature_local _ _NO_SSR
#if defined(_SLZ_SSR_ENABLED) && !defined(_NO_SSR) && !defined(SHADER_API_MOBILE)
#define _SSR_ENABLED
#endif
// End Injection STANDALONE_DEFINES from Injection_SSR.hlsl ----------------------------------------------------------
#endif
#pragma multi_compile_fragment _ _LIGHT_COOKIES
#pragma multi_compile _ SHADOWS_SHADOWMASK
//#pragma multi_compile_fragment _ _VOLUMETRICS_ENABLED
//#pragma multi_compile_fog
//#pragma skip_variants FOG_LINEAR FOG_EXP
//#pragma multi_compile_fragment _ DEBUG_DISPLAY
//#pragma multi_compile_fragment _ _DETAILS_ON
//#pragma multi_compile_fragment _ _EMISSION_ON
#if defined(LITMAS_FEATURE_LIGHTMAPPING)
#pragma multi_compile _ LIGHTMAP_ON
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
#endif
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl"
#undef UNITY_DECLARE_DEPTH_TEXTURE_INCLUDED
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SLZLighting.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SLZBlueNoise.hlsl"
// Begin Injection INCLUDES from Injection_SSR.hlsl ----------------------------------------------------------
#if !defined(SHADER_API_MOBILE)
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SLZLightingSSR.hlsl"
#endif
// End Injection INCLUDES from Injection_SSR.hlsl ----------------------------------------------------------
#pragma shader_feature_local_fragment _BRDFMAP
struct VertIn
{
float4 vertex : POSITION;
float3 normal : NORMAL;
float4 tangent : TANGENT;
float4 uv0 : TEXCOORD0;
float4 uv1 : TEXCOORD1;
float4 uv2 : TEXCOORD2;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct VertOut
{
float4 vertex : SV_POSITION;
float4 uv0XY_bitZ_fog : TEXCOORD0;
#if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)
float4 uv1 : TEXCOORD1;
#endif
half4 SHVertLights : TEXCOORD2;
half4 normXYZ_tanX : TEXCOORD3;
float3 wPos : TEXCOORD4;
// Begin Injection INTERPOLATORS from Injection_SSR.hlsl ----------------------------------------------------------
float4 lastVertex : TEXCOORD5;
// End Injection INTERPOLATORS from Injection_SSR.hlsl ----------------------------------------------------------
// Begin Injection INTERPOLATORS from Injection_NormalMaps.hlsl ----------------------------------------------------------
half4 tanYZ_bitXY : TEXCOORD6;
// End Injection INTERPOLATORS from Injection_NormalMaps.hlsl ----------------------------------------------------------
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
//TEXTURE2D(_BaseMap);
//SAMPLER(sampler_BaseMap);
//TEXTURE2D(_BumpMap);
//TEXTURE2D(_MetallicGlossMap);
//TEXTURE2D(_DetailMap);
//SAMPLER(sampler_DetailMap);
// Begin Injection UNIFORMS from Injection_Emission.hlsl ----------------------------------------------------------
//TEXTURE2D(_EmissionMap);
// End Injection UNIFORMS from Injection_Emission.hlsl ----------------------------------------------------------
CBUFFER_START(UnityPerMaterial)
float4 _WaterColor;
float2 _NormalTiling;
float _WaterSpeedA;
float _NormalIntensity;
float _WaterSpeedB;
float _WaterSmoothness;
//float4 _BaseMap_ST;
//half4 _BaseColor;
// Begin Injection MATERIAL_CBUFFER from Injection_NormalMap_CBuffer.hlsl ----------------------------------------------------------
//float4 _DetailMap_ST;
//half _Details;
//half _Normals;
// End Injection MATERIAL_CBUFFER from Injection_NormalMap_CBuffer.hlsl ----------------------------------------------------------
// Begin Injection MATERIAL_CBUFFER from Injection_SSR_CBuffer.hlsl ----------------------------------------------------------
float _SSRTemporalMul;
// End Injection MATERIAL_CBUFFER from Injection_SSR_CBuffer.hlsl ----------------------------------------------------------
// Begin Injection MATERIAL_CBUFFER from Injection_Emission.hlsl ----------------------------------------------------------
//half _Emission;
//half4 _EmissionColor;
//half _EmissionFalloff;
//half _BakedMutiplier;
// End Injection MATERIAL_CBUFFER from Injection_Emission.hlsl ----------------------------------------------------------
//int _Surface;
CBUFFER_END
sampler2D _BumpMap;
half3 OverlayBlendDetail(half source, half3 destination)
{
half3 switch0 = round(destination); // if destination >= 0.5 then 1, else 0 assuming 0-1 input
half3 blendGreater = mad(mad(2.0, destination, -2.0), 1.0 - source, 1.0); // (2.0 * destination - 2.0) * ( 1.0 - source) + 1.0
half3 blendLesser = (2.0 * source) * destination;
return mad(switch0, blendGreater, mad(-switch0, blendLesser, blendLesser)); // switch0 * blendGreater + (1 - switch0) * blendLesser
//return half3(destination.r > 0.5 ? blendGreater.r : blendLesser.r,
// destination.g > 0.5 ? blendGreater.g : blendLesser.g,
// destination.b > 0.5 ? blendGreater.b : blendLesser.b
// );
}
VertOut vert(VertIn v )
{
VertOut o = (VertOut)0;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
#ifdef ASE_ABSOLUTE_VERTEX_POS
float3 defaultVertexValue = v.vertex.xyz;
#else
float3 defaultVertexValue = float3(0, 0, 0);
#endif
float3 vertexValue = defaultVertexValue;
#ifdef ASE_ABSOLUTE_VERTEX_POS
v.vertex.xyz = vertexValue;
#else
v.vertex.xyz += vertexValue;
#endif
v.normal = v.normal;
o.wPos = TransformObjectToWorld(v.vertex.xyz);
o.vertex = TransformWorldToHClip(o.wPos);
o.uv0XY_bitZ_fog.xy = v.uv0.xy;
#if defined(LIGHTMAP_ON) || defined(DIRLIGHTMAP_COMBINED)
OUTPUT_LIGHTMAP_UV(v.uv1.xy, unity_LightmapST, o.uv1.xy);
#endif
#ifdef DYNAMICLIGHTMAP_ON
OUTPUT_LIGHTMAP_UV(v.uv2.xy, unity_DynamicLightmapST, o.uv1.zw);
#endif
// Exp2 fog
half clipZ_0Far = UNITY_Z_0_FAR_FROM_CLIPSPACE(o.vertex.z);
o.uv0XY_bitZ_fog.w = unity_FogParams.x * clipZ_0Far;
// Begin Injection VERTEX_NORMALS from Injection_NormalMaps.hlsl ----------------------------------------------------------
VertexNormalInputs ntb = GetVertexNormalInputs(v.normal, v.tangent);
o.normXYZ_tanX = half4(ntb.normalWS, ntb.tangentWS.x);
o.tanYZ_bitXY = half4(ntb.tangentWS.yz, ntb.bitangentWS.xy);
o.uv0XY_bitZ_fog.z = ntb.bitangentWS.z;
// End Injection VERTEX_NORMALS from Injection_NormalMaps.hlsl ----------------------------------------------------------
o.SHVertLights = 0;
// Calculate vertex lights and L2 probe lighting on quest
o.SHVertLights.xyz = VertexLighting(o.wPos, o.normXYZ_tanX.xyz);
#if !defined(LIGHTMAP_ON) && !defined(DYNAMICLIGHTMAP_ON) && defined(SHADER_API_MOBILE)
o.SHVertLights.xyz += SampleSHVertex(o.normXYZ_tanX.xyz);
#endif
// Begin Injection VERTEX_END from Injection_SSR.hlsl ----------------------------------------------------------
#if defined(_SSR_ENABLED)
float4 lastWPos = mul(GetPrevObjectToWorldMatrix(), v.vertex);
o.lastVertex = mul(prevVP, lastWPos);
#endif
// End Injection VERTEX_END from Injection_SSR.hlsl ----------------------------------------------------------
return o;
}
#if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE)
#define ASE_SV_DEPTH SV_DepthLessEqual
#else
#define ASE_SV_DEPTH SV_Depth
#endif
half4 frag(VertOut i
#ifdef ASE_DEPTH_WRITE_ON
, out float outputDepth : ASE_SV_DEPTH
#endif
) : SV_Target
{
UNITY_SETUP_INSTANCE_ID(i);
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
float2 temp_cast_1 = (_WaterSpeedA).xx;
float2 texCoord401 = i.uv0XY_bitZ_fog.xy * _NormalTiling + float2( 0,0 );
float2 panner402 = ( 1.0 * _Time.y * temp_cast_1 + texCoord401);
float3 unpack326 = UnpackNormalScale( tex2D( _BumpMap, panner402 ), _NormalIntensity );
unpack326.z = lerp( 1, unpack326.z, saturate(_NormalIntensity) );
float2 temp_cast_2 = (_WaterSpeedB).xx;
float2 panner403 = ( 1.0 * _Time.y * temp_cast_2 + texCoord401);
float3 unpack328 = UnpackNormalScale( tex2D( _BumpMap, panner403 ), _NormalIntensity );
unpack328.z = lerp( 1, unpack328.z, saturate(_NormalIntensity) );
//--------------------------------------------------------------------------------------------------------------------------
//--Read Input Data---------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------
//float2 uv_main = mad(float2(i.uv0XY_bitZ_fog.xy), _BaseMap_ST.xy, _BaseMap_ST.zw);
//float2 uv_detail = mad(float2(i.uv0XY_bitZ_fog.xy), _DetailMap_ST.xy, _DetailMap_ST.zw);
//half4 albedo = SAMPLE_TEXTURE2D(_BaseMap, sampler_BaseMap, uv_main);
//half4 mas = SAMPLE_TEXTURE2D(_MetallicGlossMap, sampler_BaseMap, uv_main);
//albedo *= _BaseColor;
//half metallic = mas.r;
//half ao = mas.g;
//half smoothness = mas.b;
//---------------------------------------------------------------------------------------------------------------------------
//---Sample Normal Map-------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------
//half3 normalTS = half3(0, 0, 1);
//half geoSmooth = 1;
//half4 normalMap = half4(0, 0, 1, 0);
half3 albedo3 = _WaterColor.rgb;
half3 normalTS = BlendNormal( unpack326 , unpack328 );
half3 emission = half3(0,0,0);
half3 emissionbaked = half3(0,0,0);
// Begin Injection NORMAL_MAP from Injection_NormalMaps.hlsl ----------------------------------------------------------
//normalMap = SAMPLE_TEXTURE2D(_BumpMap, sampler_BaseMap, uv_main);
//normalTS = UnpackNormal(normalMap);
//normalTS = _Normals ? normalTS : half3(0, 0, 1);
//geoSmooth = _Normals ? normalMap.b : 1.0;
//smoothness = saturate(smoothness + geoSmooth - 1.0);
// End Injection NORMAL_MAP from Injection_NormalMaps.hlsl ----------------------------------------------------------
half metallic = half(0);
half3 specular = half3(0.5, 0.5, 0.5);
half smoothness = _WaterSmoothness;
half ao = half(1);
half alpha = _WaterColor.a;
half alphaclip = half(0);
half alphaclipthresholdshadow = half(0);
#ifdef ASE_DEPTH_WRITE_ON
float DepthValue = 0;
#endif
#if defined(_ALPHATEST_ON)
clip(alpha - alphaclip);
#endif
#if defined(_ISTRANSPARENT)
_SSRTemporalMul = 0.0;
#endif
half4 albedo = half4(albedo3.rgb, alpha);
//---------------------------------------------------------------------------------------------------------------------------
//---Read Detail Map---------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------
//#if defined(_DETAILS_ON)
// Begin Injection DETAIL_MAP from Injection_NormalMaps.hlsl ----------------------------------------------------------
//half4 detailMap = SAMPLE_TEXTURE2D(_DetailMap, sampler_DetailMap, uv_detail);
//half3 detailTS = half3(2.0 * detailMap.ag - 1.0, 1.0);
//normalTS = BlendNormal(normalTS, detailTS);
// End Injection DETAIL_MAP from Injection_NormalMaps.hlsl ----------------------------------------------------------
//smoothness = saturate(2.0 * detailMap.b * smoothness);
//albedo.rgb = OverlayBlendDetail(detailMap.r, albedo.rgb);
//#endif
//---------------------------------------------------------------------------------------------------------------------------
//---Transform Normals To Worldspace-----------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------
// Begin Injection NORMAL_TRANSFORM from Injection_NormalMaps.hlsl ----------------------------------------------------------
half3 normalWS = i.normXYZ_tanX.xyz;
half3x3 TStoWS = half3x3(
i.normXYZ_tanX.w, i.tanYZ_bitXY.z, normalWS.x,
i.tanYZ_bitXY.x, i.tanYZ_bitXY.w, normalWS.y,
i.tanYZ_bitXY.y, i.uv0XY_bitZ_fog.z, normalWS.z
);
normalWS = mul(TStoWS, normalTS);
normalWS = normalize(normalWS);
// End Injection NORMAL_TRANSFORM from Injection_NormalMaps.hlsl ----------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------//
//---Lighting Calculations---------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------//
// Begin Injection SPEC_AA from Injection_NormalMaps.hlsl ----------------------------------------------------------
#if !defined(SHADER_API_MOBILE) && !defined(LITMAS_FEATURE_TP) // Specular antialiasing based on normal derivatives. Only on PC to avoid cost of derivatives on Quest
smoothness = min(smoothness, SLZGeometricSpecularAA(normalWS));
#endif
// End Injection SPEC_AA from Injection_NormalMaps.hlsl ----------------------------------------------------------
#if defined(LIGHTMAP_ON)
SLZFragData fragData = SLZGetFragData(i.vertex, i.wPos, normalWS, i.uv1.xy, i.uv1.zw, i.SHVertLights.xyz);
#else
SLZFragData fragData = SLZGetFragData(i.vertex, i.wPos, normalWS, float2(0, 0), float2(0, 0), i.SHVertLights.xyz);
#endif
//half4 emission = half4(0,0,0,0);
// Begin Injection EMISSION from Injection_Emission.hlsl ----------------------------------------------------------
//UNITY_BRANCH if (_Emission)
//{
//emission += SAMPLE_TEXTURE2D(_EmissionMap, sampler_BaseMap, uv_main) * _EmissionColor;
//emission.rgb *= lerp(albedo.rgb, half3(1, 1, 1), emission.a);
//emission.rgb *= pow(abs(fragData.NoV), _EmissionFalloff);
//}
// End Injection EMISSION from Injection_Emission.hlsl ----------------------------------------------------------
#if !defined(_SLZ_SPECULAR_SETUP)
SLZSurfData surfData = SLZGetSurfDataMetallicGloss(albedo.rgb, saturate(metallic), saturate(smoothness), ao, emission.rgb, albedo.a);
#else
SLZSurfData surfData;
surfData.albedo = albedo.rgb;
surfData.specular = specular.rgb;
surfData.perceptualRoughness = half(1.0) - saturate(smoothness);
surfData.reflectivity = (specular.r + specular.g + specular.b) / half(3.0);
surfData.roughness = max(surfData.perceptualRoughness * surfData.perceptualRoughness, 1.0e-3h);
surfData.emission = emission.rgb;
surfData.occlusion = ao;
surfData.alpha = alpha;
#endif
half4 color = half4(1, 1, 1, 1);
#if defined(_SurfaceOpaque)
int _Surface = 0;
#elif defined(_SurfaceTransparent)
int _Surface = 1;
#elif defined(_SurfaceFade)
int _Surface = 2;
#else
int _Surface = 0;
#endif
// Begin Injection LIGHTING_CALC from Injection_SSR.hlsl ----------------------------------------------------------
#if defined(_SSR_ENABLED)
half4 noiseRGBA = GetScreenNoiseRGBA(fragData.screenUV);
SSRExtraData ssrExtra;
ssrExtra.meshNormal = i.normXYZ_tanX.xyz;
ssrExtra.lastClipPos = i.lastVertex;
ssrExtra.temporalWeight = _SSRTemporalMul;
ssrExtra.depthDerivativeSum = 0;
ssrExtra.noise = noiseRGBA;
ssrExtra.fogFactor = i.uv0XY_bitZ_fog.w;
color = SLZPBRFragmentSSR(fragData, surfData, ssrExtra, _Surface);
color.rgb = max(0, color.rgb);
#else
color = SLZPBRFragment(fragData, surfData, _Surface);
#endif
// End Injection LIGHTING_CALC from Injection_SSR.hlsl ----------------------------------------------------------
// Begin Injection VOLUMETRIC_FOG from Injection_SSR.hlsl ----------------------------------------------------------
#if !defined(_SSR_ENABLED)
color = MixFogSurf(color, -fragData.viewDir, i.uv0XY_bitZ_fog.w, _Surface);
color = VolumetricsSurf(color, fragData.position, _Surface);
#endif
// End Injection VOLUMETRIC_FOG from Injection_SSR.hlsl ----------------------------------------------------------
#ifdef ASE_DEPTH_WRITE_ON
outputDepth = DepthValue;
#endif
return color;
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ENDHLSL
}
Pass
{
Name "DepthOnly"
Tags { "Lightmode"="DepthOnly" }
ColorMask 0
HLSLPROGRAM
#pragma multi_compile_fog
#define LITMAS_FEATURE_LIGHTMAPPING
#pragma multi_compile_fragment _ _VOLUMETRICS_ENABLED
#define LITMAS_FEATURE_EMISSION
#define PC_REFLECTION_PROBE_BLENDING
#define PC_REFLECTION_PROBE_BOX_PROJECTION
#define PC_SSAO
#define MOBILE_LIGHTS_VERTEX
#pragma multi_compile_instancing
#define PC_RECEIVE_SHADOWS
#define _ISTRANSPARENT
#define _SurfaceTransparent
#define ASE_SRP_VERSION -1
#pragma vertex vert
#pragma fragment frag
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/PlatformCompiler.hlsl"
//DepthOnly------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#define SHADERPASS SHADERPASS_DEPTHONLY
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl"
#pragma shader_feature_local_fragment _BRDFMAP
struct appdata
{
float4 vertex : POSITION;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 vertex : SV_POSITION;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
CBUFFER_START( UnityPerMaterial )
float4 _WaterColor;
float2 _NormalTiling;
float _WaterSpeedA;
float _NormalIntensity;
float _WaterSpeedB;
float _WaterSmoothness;
CBUFFER_END
v2f vert(appdata v )
{
v2f o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
#ifdef ASE_ABSOLUTE_VERTEX_POS
float3 defaultVertexValue = v.vertex.xyz;
#else
float3 defaultVertexValue = float3(0, 0, 0);
#endif
float3 vertexValue = defaultVertexValue;
#ifdef ASE_ABSOLUTE_VERTEX_POS
v.vertex.xyz = vertexValue;
#else
v.vertex.xyz += vertexValue;
#endif
o.vertex = TransformObjectToHClip(v.vertex.xyz);
return o;
}
#if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE)
#define ASE_SV_DEPTH SV_DepthLessEqual
#else
#define ASE_SV_DEPTH SV_Depth
#endif
half4 frag(v2f i
#ifdef ASE_DEPTH_WRITE_ON
, out float outputDepth : ASE_SV_DEPTH
#endif
) : SV_Target
{
UNITY_SETUP_INSTANCE_ID(i);
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
half alpha = _WaterColor.a;
half alphaclip = half(0);
half alphaclipthresholdshadow = half(0);
#ifdef ASE_DEPTH_WRITE_ON
float DepthValue = 0;
#endif
#if defined(_ALPHATEST_ON)
clip(alpha - alphaclip);
#endif
#ifdef ASE_DEPTH_WRITE_ON
outputDepth = DepthValue;
#endif
return 0;
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ENDHLSL
}
Pass
{
Name "DepthNormals"
Tags { "Lightmode"="DepthNormals" }
HLSLPROGRAM
#pragma multi_compile_fog
#define LITMAS_FEATURE_LIGHTMAPPING
#pragma multi_compile_fragment _ _VOLUMETRICS_ENABLED
#define LITMAS_FEATURE_EMISSION
#define PC_REFLECTION_PROBE_BLENDING
#define PC_REFLECTION_PROBE_BOX_PROJECTION
#define PC_SSAO
#define MOBILE_LIGHTS_VERTEX
#pragma multi_compile_instancing
#define PC_RECEIVE_SHADOWS
#define _ISTRANSPARENT
#define _SurfaceTransparent
#define ASE_SRP_VERSION -1
#pragma vertex vert
#pragma fragment frag
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/PlatformCompiler.hlsl"
//StandardDepthNormals-------------------------------------------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
//
//
//-----------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
#define SHADERPASS SHADERPASS_DEPTHNORMALS
#if defined(SHADER_API_MOBILE)
#else
#endif
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/EncodeNormalsTexture.hlsl"
#pragma shader_feature_local_fragment _BRDFMAP
struct appdata
{
float4 vertex : POSITION;
float3 normal : NORMAL;
// Begin Injection VERTEX_IN from Injection_NormalMap_DepthNormals.hlsl ----------------------------------------------------------
float4 tangent : TANGENT;
float2 uv0 : TEXCOORD0;
// End Injection VERTEX_IN from Injection_NormalMap_DepthNormals.hlsl ----------------------------------------------------------
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 vertex : SV_POSITION;
float4 normalWS : NORMAL;
float2 uv0 : TEXCOORD0;
// Begin Injection INTERPOLATORS from Injection_NormalMap_DepthNormals.hlsl ----------------------------------------------------------
float4 tanYZ_bitXY : TEXCOORD1;
float4 uv0XY_bitZ_fog : TEXCOORD2;
// End Injection INTERPOLATORS from Injection_NormalMap_DepthNormals.hlsl ----------------------------------------------------------
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
// Begin Injection UNIFORMS from Injection_NormalMap_DepthNormals.hlsl ----------------------------------------------------------
//TEXTURE2D(_BumpMap);
//SAMPLER(sampler_BumpMap);
// End Injection UNIFORMS from Injection_NormalMap_DepthNormals.hlsl ----------------------------------------------------------
CBUFFER_START(UnityPerMaterial)
float4 _WaterColor;
float2 _NormalTiling;
float _WaterSpeedA;
float _NormalIntensity;
float _WaterSpeedB;
float _WaterSmoothness;
//float4 _BaseMap_ST;
//half4 _BaseColor;
// Begin Injection MATERIAL_CBUFFER from Injection_NormalMap_CBuffer.hlsl ----------------------------------------------------------
//float4 _DetailMap_ST;
//half _Details;
//half _Normals;
// End Injection MATERIAL_CBUFFER from Injection_NormalMap_CBuffer.hlsl ----------------------------------------------------------
// Begin Injection MATERIAL_CBUFFER from Injection_SSR_CBuffer.hlsl ----------------------------------------------------------
float _SSRTemporalMul;
// End Injection MATERIAL_CBUFFER from Injection_SSR_CBuffer.hlsl ----------------------------------------------------------
// Begin Injection MATERIAL_CBUFFER from Injection_Emission_CBuffer.hlsl ----------------------------------------------------------
//half _Emission;
//half4 _EmissionColor;
//half _EmissionFalloff;
//half _BakedMutiplier;
// End Injection MATERIAL_CBUFFER from Injection_Emission_CBuffer.hlsl ----------------------------------------------------------
//int _Surface;
CBUFFER_END
sampler2D _BumpMap;
v2f vert(appdata v )
{
v2f o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
#ifdef ASE_ABSOLUTE_VERTEX_POS
float3 defaultVertexValue = v.vertex.xyz;
#else
float3 defaultVertexValue = float3(0, 0, 0);
#endif
float3 vertexValue = defaultVertexValue;
#ifdef ASE_ABSOLUTE_VERTEX_POS
v.vertex.xyz = vertexValue;
#else
v.vertex.xyz += vertexValue;
#endif
o.vertex = TransformObjectToHClip(v.vertex.xyz);
v.normal = v.normal;
// Begin Injection VERTEX_NORMAL from Injection_NormalMap_DepthNormals.hlsl ----------------------------------------------------------
VertexNormalInputs ntb = GetVertexNormalInputs(v.normal, v.tangent);
o.normalWS = float4(ntb.normalWS, ntb.tangentWS.x);
o.tanYZ_bitXY = float4(ntb.tangentWS.yz, ntb.bitangentWS.xy);
o.uv0XY_bitZ_fog.zw = ntb.bitangentWS.zz;
o.uv0XY_bitZ_fog.xy = v.uv0.xy;
// End Injection VERTEX_NORMAL from Injection_NormalMap_DepthNormals.hlsl ----------------------------------------------------------
o.uv0 = v.uv0;
return o;
}
#if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE)
#define ASE_SV_DEPTH SV_DepthLessEqual
#else
#define ASE_SV_DEPTH SV_Depth
#endif
half4 frag(v2f i
#ifdef ASE_DEPTH_WRITE_ON
, out float outputDepth : ASE_SV_DEPTH
#endif
) : SV_Target
{
UNITY_SETUP_INSTANCE_ID(i);
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
float2 temp_cast_0 = (_WaterSpeedA).xx;
float2 texCoord401 = i.uv0.xy * _NormalTiling + float2( 0,0 );
float2 panner402 = ( 1.0 * _Time.y * temp_cast_0 + texCoord401);
float3 unpack326 = UnpackNormalScale( tex2D( _BumpMap, panner402 ), _NormalIntensity );
unpack326.z = lerp( 1, unpack326.z, saturate(_NormalIntensity) );
float2 temp_cast_1 = (_WaterSpeedB).xx;
float2 panner403 = ( 1.0 * _Time.y * temp_cast_1 + texCoord401);
float3 unpack328 = UnpackNormalScale( tex2D( _BumpMap, panner403 ), _NormalIntensity );
unpack328.z = lerp( 1, unpack328.z, saturate(_NormalIntensity) );
half4 normals = half4(0, 0, 0, 1);
half3 normalTS = BlendNormal( unpack326 , unpack328 );
// Begin Injection FRAG_NORMALS from Injection_NormalMap_DepthNormals.hlsl ----------------------------------------------------------
//half4 normalMap = SAMPLE_TEXTURE2D(_BumpMap, sampler_BumpMap, i.uv0XY_bitZ_fog.xy);
//half3 normalTS = UnpackNormal(normalMap);
//normalTS = _Normals ? normalTS : half3(0, 0, 1);
half3x3 TStoWS = half3x3(
i.normalWS.w, i.tanYZ_bitXY.z, i.normalWS.x,
i.tanYZ_bitXY.x, i.tanYZ_bitXY.w, i.normalWS.y,
i.tanYZ_bitXY.y, i.uv0XY_bitZ_fog.z, i.normalWS.z
);
half3 normalWS = mul(TStoWS, normalTS);
normalWS = normalize(normalWS);
normals = half4(EncodeWSNormalForNormalsTex(normalWS),0);
// End Injection FRAG_NORMALS from Injection_NormalMap_DepthNormals.hlsl ----------------------------------------------------------
half alpha = _WaterColor.a;
half alphaclip = half(0);
half alphaclipthresholdshadow = half(0);
#ifdef ASE_DEPTH_WRITE_ON
float DepthValue = 0;
#endif
#if defined(_ALPHATEST_ON)
clip(alpha - alphaclip);
#endif
#ifdef ASE_DEPTH_WRITE_ON
outputDepth = DepthValue;
#endif
return normals;
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ENDHLSL
}
Pass
{
Name "Meta"
Tags { "LightMode"="Meta" }
Cull Off
HLSLPROGRAM
#pragma multi_compile_fog
#define LITMAS_FEATURE_LIGHTMAPPING
#pragma multi_compile_fragment _ _VOLUMETRICS_ENABLED
#define LITMAS_FEATURE_EMISSION
#define PC_REFLECTION_PROBE_BLENDING
#define PC_REFLECTION_PROBE_BOX_PROJECTION
#define PC_SSAO
#define MOBILE_LIGHTS_VERTEX
#pragma multi_compile_instancing
#define PC_RECEIVE_SHADOWS
#define _ISTRANSPARENT
#define _SurfaceTransparent
#define ASE_SRP_VERSION -1
#define _NORMAL_DROPOFF_TS 1
#define _EMISSION
#define _NORMALMAP 1
#pragma vertex vert
#pragma fragment frag
#define SHADERPASS SHADERPASS_META
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/PlatformCompiler.hlsl"
//StandardMeta.hlsl---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
//
//
//-----------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
#define SHADERPASS SHADERPASS_META
#define PASS_META
#if defined(SHADER_API_MOBILE)
#else
#endif
//#pragma shader_feature _ EDITOR_VISUALIZATION
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/MetaInput.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#pragma shader_feature_local_fragment _BRDFMAP
//TEXTURE2D(_BaseMap);
//SAMPLER(sampler_BaseMap);
// Begin Injection UNIFORMS from Injection_Emission_Meta.hlsl ----------------------------------------------------------
//TEXTURE2D(_EmissionMap);
// End Injection UNIFORMS from Injection_Emission_Meta.hlsl ----------------------------------------------------------
CBUFFER_START(UnityPerMaterial)
float4 _WaterColor;
float2 _NormalTiling;
float _WaterSpeedA;
float _NormalIntensity;
float _WaterSpeedB;
float _WaterSmoothness;
//float4 _BaseMap_ST;
//half4 _BaseColor;
// Begin Injection MATERIAL_CBUFFER from Injection_NormalMap_CBuffer.hlsl ----------------------------------------------------------
//float4 _DetailMap_ST;
//half _Details;
//half _Normals;
// End Injection MATERIAL_CBUFFER from Injection_NormalMap_CBuffer.hlsl ----------------------------------------------------------
// Begin Injection MATERIAL_CBUFFER from Injection_SSR_CBuffer.hlsl ----------------------------------------------------------
float _SSRTemporalMul;
// End Injection MATERIAL_CBUFFER from Injection_SSR_CBuffer.hlsl ----------------------------------------------------------
// Begin Injection MATERIAL_CBUFFER from Injection_Emission_CBuffer.hlsl ----------------------------------------------------------
//half _Emission;
//half4 _EmissionColor;
//half _EmissionFalloff;
//half _BakedMutiplier;
// End Injection MATERIAL_CBUFFER from Injection_Emission_CBuffer.hlsl ----------------------------------------------------------
//int _Surface;
CBUFFER_END
struct appdata
{
float4 vertex : POSITION;
float4 uv0 : TEXCOORD0;
float4 uv1 : TEXCOORD1;
float4 uv2 : TEXCOORD2;
float4 uv3 : TEXCOORD3;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 vertex : SV_POSITION;
float2 uv : TEXCOORD0;
#ifdef EDITOR_VISUALIZATION
float4 VizUV : TEXCOORD1;
float4 LightCoord : TEXCOORD2;
#endif
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
v2f vert(appdata v )
{
v2f o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
float3 vertexValue = float3(0,0,0);
v.vertex.xyz += vertexValue;
o.vertex = UnityMetaVertexPosition(v.vertex.xyz, v.uv1.xy, v.uv2.xy);
//o.uv = TRANSFORM_TEX(v.uv0.xy, _BaseMap);
o.uv = v.uv0.xy;
#ifdef EDITOR_VISUALIZATION
float2 vizUV = 0;
float4 lightCoord = 0;
UnityEditorVizData(v.vertex.xyz, v.uv0.xy, v.uv1.xy, v.uv2.xy, vizUV, lightCoord);
o.VizUV = float4(vizUV, 0, 0);
o.LightCoord = lightCoord;
#endif
return o;
}
half4 frag(v2f i ) : SV_Target
{
UNITY_SETUP_INSTANCE_ID(i);
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
MetaInput metaInput = (MetaInput)0;
float2 uv_main = i.uv;
//half4 albedo = SAMPLE_TEXTURE2D(_BaseMap, sampler_BaseMap, i.uv) * _BaseColor;
//metaInput.Albedo = albedo.rgb;
///half4 emission = half4(0, 0, 0, 0);
// Begin Injection EMISSION from Injection_Emission_Meta.hlsl ----------------------------------------------------------
//if (_Emission)
//{
//half4 emissionDefault = _EmissionColor * SAMPLE_TEXTURE2D(_EmissionMap, sampler_BaseMap, i.uv);
//emissionDefault.rgb *= _BakedMutiplier * _Emission;
//emissionDefault.rgb *= lerp(albedo.rgb, half3(1, 1, 1), emissionDefault.a);
//emission += emissionDefault;
//}
// End Injection EMISSION from Injection_Emission_Meta.hlsl ----------------------------------------------------------
//metaInput.Emission = emission.rgb;
metaInput.Albedo = _WaterColor.rgb;
half3 emission = half3(0,0,0);
half3 bakedemission = emission;
metaInput.Emission = bakedemission.rgb;
#ifdef EDITOR_VISUALIZATION
metaInput.VizUV = i.VizUV.xy;
metaInput.LightCoord = i.LightCoord;
#endif
half alpha = _WaterColor.a;
half alphaclip = half(0);
half alphaclipthresholdshadow = half(0);
#if defined(_ALPHATEST_ON)
clip(alpha - alphaclip);
#endif
return MetaFragment(metaInput);
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ENDHLSL
}
/*ase_pass*/
Pass
{
Name "BakedRaytrace"
Tags{ "LightMode" = "BakedRaytrace" }
HLSLPROGRAM
/*ase_pragma_before*/
#pragma multi_compile _ _EMISSION_ON
//StandardBakedRT------------------------------------------------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
//
//
//-----------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
#define SHADERPASS SHADERPASS_RAYTRACE
#include "UnityRaytracingMeshUtils.cginc"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
/*ase_pragma*/
#pragma raytracing BakeHit
struct RayPayload
{
float4 color;
float3 dir;
};
struct AttributeData
{
float2 barycentrics;
};
struct Vertex
{
float2 texcoord;
float3 normal;
};
// Begin Injection UNIFORMS from Injection_Emission_BakedRT.hlsl ----------------------------------------------------------
//Texture2D<float4> _BaseMap;
//SamplerState sampler_BaseMap;
//Texture2D<float4> _EmissionMap;
//SamplerState sampler_EmissionMap;
// End Injection UNIFORMS from Injection_Emission_BakedRT.hlsl ----------------------------------------------------------
CBUFFER_START( UnityPerMaterial )
/*ase_srp_batcher*/
//float4 _BaseMap_ST;
//half4 _BaseColor;
// Begin Injection MATERIAL_CBUFFER from Injection_NormalMap_CBuffer.hlsl ----------------------------------------------------------
//float4 _DetailMap_ST;
//half _Details;
//half _Normals;
// End Injection MATERIAL_CBUFFER from Injection_NormalMap_CBuffer.hlsl ----------------------------------------------------------
// Begin Injection MATERIAL_CBUFFER from Injection_SSR_CBuffer.hlsl ----------------------------------------------------------
float _SSRTemporalMul;
// End Injection MATERIAL_CBUFFER from Injection_SSR_CBuffer.hlsl ----------------------------------------------------------
// Begin Injection MATERIAL_CBUFFER from Injection_Emission_CBuffer.hlsl ----------------------------------------------------------
//half _Emission;
//half4 _EmissionColor;
//half _EmissionFalloff;
//half _BakedMutiplier;
// End Injection MATERIAL_CBUFFER from Injection_Emission_CBuffer.hlsl ----------------------------------------------------------
//int _AlphaPreMult;
CBUFFER_END
/*ase_globals*/
/*ase_funcs*/
//https://coty.tips/raytracing-in-unity/
[shader("closesthit")]
void MyClosestHit(inout RayPayload payload, AttributeData attributes : SV_IntersectionAttributes) {
payload.color = float4(0,0,0,1); //Intializing
payload.dir = float3(1,0,0);
// Begin Injection CLOSEST_HIT from Injection_Emission_BakedRT.hlsl ----------------------------------------------------------
uint2 launchIdx = DispatchRaysIndex();
uint primitiveIndex = PrimitiveIndex();
uint3 triangleIndicies = UnityRayTracingFetchTriangleIndices(primitiveIndex);
Vertex v0, v1, v2;
v0.texcoord = UnityRayTracingFetchVertexAttribute2(triangleIndicies.x, kVertexAttributeTexCoord0);
v1.texcoord = UnityRayTracingFetchVertexAttribute2(triangleIndicies.y, kVertexAttributeTexCoord0);
v2.texcoord = UnityRayTracingFetchVertexAttribute2(triangleIndicies.z, kVertexAttributeTexCoord0);
// v0.normal = UnityRayTracingFetchVertexAttribute3(triangleIndicies.x, kVertexAttributeNormal);
// v1.normal = UnityRayTracingFetchVertexAttribute3(triangleIndicies.y, kVertexAttributeNormal);
// v2.normal = UnityRayTracingFetchVertexAttribute3(triangleIndicies.z, kVertexAttributeNormal);
float3 barycentrics = float3(1.0 - attributes.barycentrics.x - attributes.barycentrics.y, attributes.barycentrics.x, attributes.barycentrics.y);
Vertex vInterpolated;
vInterpolated.texcoord = v0.texcoord * barycentrics.x + v1.texcoord * barycentrics.y + v2.texcoord * barycentrics.z;
//TODO: Extract normal direction to ignore the backside of emissive objects
//vInterpolated.normal = v0.normal * barycentrics.x + v1.normal * barycentrics.y + v2.normal * barycentrics.z;
// if ( dot(vInterpolated.normal, float3(1,0,0) < 0) ) payload.color = float4(0,10,0,1) ;
// else payload.color = float4(10,0,0,1) ;
//float4 albedo = float4(_BaseMap.SampleLevel(sampler_BaseMap, vInterpolated.texcoord.xy * _BaseMap_ST.xy + _BaseMap_ST.zw, 0).rgb, 1) * _BaseColor;
//float4 emission = _Emission * _EmissionMap.SampleLevel(sampler_EmissionMap, vInterpolated.texcoord * _BaseMap_ST.xy + _BaseMap_ST.zw, 0) * _EmissionColor;
half3 albedo = /*ase_frag_out:Albedo;Float3;_Albedo*/half3(0.5, 0.5, 0.5)/*end*/;
half3 emission = /*ase_frag_out:Emission;Float3;_Emission*/half3(0,0,0)/*end*/;
half3 baked_emission = /*ase_frag_out:Baked Emission;Float3;_EmissionBaked*/emission/*end*/;
//emission.rgb *= lerp(albedo.rgb, 1, emission.a);
//payload.color.rgb = emission.rgb * _BakedMutiplier;
// End Injection CLOSEST_HIT from Injection_Emission_BakedRT.hlsl ----------------------------------------------------------
payload.color.rgb = baked_emission.rgb;
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ENDHLSL
}
}
CustomEditor "UnityEditor.ShaderGraphLitGUI"
Fallback "Hidden/InternalErrorShader"
}
/*ASEBEGIN
Version=19102
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;174;1838.601,-748.1998;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;623634af11bd9ab448550ee777f3493e;True;DepthOnly;0;1;DepthOnly;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;False;False;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;1;Lightmode=DepthOnly;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;175;1838.601,-748.1998;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;623634af11bd9ab448550ee777f3493e;True;DepthNormals;0;2;DepthNormals;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;False;False;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;Lightmode=DepthNormals;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;176;1838.601,-748.1998;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;623634af11bd9ab448550ee777f3493e;True;ShadowCaster;0;3;ShadowCaster;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;False;False;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=ShadowCaster;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;177;1838.601,-748.1998;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;623634af11bd9ab448550ee777f3493e;True;Meta;0;4;Meta;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;False;False;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Meta;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.CommentaryNode;313;-4151.871,-2161.722;Inherit;False;1418.059;651.8691;Blend Normals;11;325;402;403;327;328;415;326;401;419;464;465;Blend Normals;0,0,1,1;0;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;173;-2607.442,-2243.814;Float;False;True;-1;2;UnityEditor.ShaderGraphLitGUI;0;13;AtlasShaders/LitMAS Water 2.5_Quest;623634af11bd9ab448550ee777f3493e;True;Forward;0;0;Forward;14;False;True;1;1;False;;10;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;2;False;;True;3;False;;True;True;0;False;;0;False;;True;3;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;False;False;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;1;Lightmode=UniversalForward;True;7;False;0;Hidden/InternalErrorShader;0;0;Standard;24;Workflow;1;0;Surface;1;638699003720200241;Two Sided;0;638631752336588731;Cast Shadows;0;638625370991696133; Use Shadow Threshold;0;0;GPU Instancing;1;638630934546427872;Built-in Fog;1;0;Lightmaps;1;0;Volumetrics;1;0;Decals;0;0;Write Depth;0;638630934308364846; Early Z (broken);0;0;Vertex Position,InvertActionOnDeselection;1;0;Emission;1;0;PC Reflection Probe;3;0;PC Receive Shadows;1;638698887280467123;PC Vertex Lights;0;0;PC SSAO;1;0;Q Reflection Probe;0;0;Q Receive Shadows;0;0;Q Vertex Lights;1;0;Q SSAO;0;0;Environment Reflections;1;0;Meta Pass;1;0;0;5;True;True;True;False;True;False;;False;0
Node;AmplifyShaderEditor.Vector2Node;419;-4128.929,-2098.898;Inherit;False;Property;_NormalTiling;Normal Tiling;2;1;[Header];Create;True;1;(Non MV ONLY 0.1 Through 1 Recommended);0;0;False;0;False;0.2,0.2;0.2,0.2;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
Node;AmplifyShaderEditor.TextureCoordinatesNode;401;-3958.232,-2094.556;Inherit;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SamplerNode;326;-3298.581,-2079.211;Inherit;True;Property;_TextureSample4;Texture Sample 0;0;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;True;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;415;-3693.89,-1819.401;Inherit;False;Property;_NormalIntensity;Normal Intensity;1;1;[Header];Create;True;1;(Non MV ONLY);0;0;False;0;False;0.6;0.6;0;10;0;1;FLOAT;0
Node;AmplifyShaderEditor.SamplerNode;328;-3289.521,-1856.872;Inherit;True;Property;_TextureSample6;Texture Sample 1;0;0;Create;True;0;0;0;False;0;False;-1;None;None;True;1;False;white;Auto;True;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.TexturePropertyNode;327;-3641.464,-1735.701;Float;True;Property;_BumpMap;Normal;0;3;[Header];[NoScaleOffset];[Normal];Create;False;1;Textures;0;0;False;0;False;None;fc7df81110c0e4d2498739bf4d47a49d;True;bump;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
Node;AmplifyShaderEditor.PannerNode;403;-3598.637,-1945.954;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0.04,0.04;False;1;FLOAT;1;False;1;FLOAT2;0
Node;AmplifyShaderEditor.PannerNode;402;-3600.307,-2080.229;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;-0.03,0;False;1;FLOAT;1;False;1;FLOAT2;0
Node;AmplifyShaderEditor.BlendNormalsNode;325;-2937.4,-1951.974;Inherit;False;0;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.RangedFloatNode;464;-3966.561,-1962.516;Inherit;False;Property;_WaterSpeedA;Water Speed A;5;0;Create;True;0;0;0;False;0;False;0.01;20;-0.1;0.1;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;465;-3971.561,-1880.516;Inherit;False;Property;_WaterSpeedB;Water Speed B;6;0;Create;True;0;0;0;False;0;False;0.01;20;-0.1;0.1;0;1;FLOAT;0
Node;AmplifyShaderEditor.FunctionNode;466;-2496.218,-2378;Inherit;False;BRDFMap;7;;1;1affaac2d6e57354aaa8d6573a2b32b8;0;1;3;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.ColorNode;229;-2960.438,-2498.733;Inherit;False;Property;_WaterColor;Water Color;4;1;[HDR];Create;True;1;Colors;0;0;False;0;False;0.1333333,0.1333333,0.1333333,1;1.605559,1.605559,1.605559,1;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;423;-2993.679,-2299.866;Inherit;False;Property;_WaterSmoothness;Water Smoothness;3;1;[Header];Create;True;1;Water Attributes;0;0;False;0;False;0.8;0.192;0;1;0;1;FLOAT;0
WireConnection;173;0;229;0
WireConnection;173;1;325;0
WireConnection;173;6;423;0
WireConnection;173;8;229;4
WireConnection;401;0;419;0
WireConnection;326;0;327;0
WireConnection;326;1;402;0
WireConnection;326;5;415;0
WireConnection;328;0;327;0
WireConnection;328;1;403;0
WireConnection;328;5;415;0
WireConnection;403;0;401;0
WireConnection;403;2;465;0
WireConnection;402;0;401;0
WireConnection;402;2;464;0
WireConnection;325;0;326;0
WireConnection;325;1;328;0
ASEEND*/
//CHKSM=55E1397BD22E40F078A7BA6BC9F76C936DBD6627