180 lines
6.3 KiB
Plaintext
180 lines
6.3 KiB
Plaintext
Shader "NiloToon/Environment/Reflection Demo"
|
|
{
|
|
Properties
|
|
{
|
|
[Header(Base Properties)]
|
|
_BaseMap ("Base Map", 2D) = "white" {}
|
|
_BaseColor ("Base Color", Color) = (1, 1, 1, 1)
|
|
|
|
[Header(Surface Properties)]
|
|
_Metallic ("Metallic", Range(0, 1)) = 0.5
|
|
_Smoothness ("Smoothness", Range(0, 1)) = 0.5
|
|
|
|
[Header(Normal)]
|
|
_BumpMap ("Normal Map", 2D) = "bump" {}
|
|
_BumpScale ("Normal Scale", Float) = 1.0
|
|
|
|
[Header(Planar Reflection)]
|
|
[Toggle] _EnablePlanarReflection ("Enable Planar Reflection", Float) = 1
|
|
_ReflectionIntensity ("Reflection Intensity", Range(0, 2)) = 1.0
|
|
_ReflectionTintColor ("Reflection Tint", Color) = (1, 1, 1, 1)
|
|
_ReflectionFresnel ("Fresnel Power", Range(0.1, 5)) = 1.5
|
|
_ReflectionDistortion ("Distortion", Range(0, 0.1)) = 0.02
|
|
_ReflectionDepthFade ("Depth Fade", Range(0, 10)) = 1.0
|
|
_ReflectionBlurRadius ("Blur Radius", Range(0, 2)) = 0.5
|
|
|
|
[Header(Advanced)]
|
|
_Cutoff ("Alpha Cutoff", Range(0, 1)) = 0.5
|
|
|
|
// Unity Standard Properties
|
|
_Surface ("Surface Type", Float) = 0.0
|
|
}
|
|
|
|
SubShader
|
|
{
|
|
Tags
|
|
{
|
|
"RenderType" = "Opaque"
|
|
"RenderPipeline" = "UniversalPipeline"
|
|
"Queue" = "Geometry"
|
|
}
|
|
|
|
LOD 300
|
|
|
|
Pass
|
|
{
|
|
Name "ForwardLit"
|
|
Tags { "LightMode" = "UniversalForward" }
|
|
|
|
HLSLPROGRAM
|
|
#pragma target 3.0
|
|
|
|
// Universal Pipeline keywords
|
|
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
|
|
#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
|
|
#pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS
|
|
#pragma multi_compile_fragment _ _SHADOWS_SOFT
|
|
#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
|
|
#pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
|
|
#pragma multi_compile _ SHADOWS_SHADOWMASK
|
|
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
|
|
#pragma multi_compile _ LIGHTMAP_ON
|
|
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
|
|
#pragma multi_compile_fog
|
|
|
|
// Material keywords
|
|
#pragma shader_feature_local _NORMALMAP
|
|
#pragma shader_feature_local _METALLICSPECGLOSSMAP
|
|
#pragma shader_feature_local _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
#pragma shader_feature_local _OCCLUSIONMAP
|
|
#pragma shader_feature_local _EMISSION
|
|
#pragma shader_feature_local _ALPHATEST_ON
|
|
#pragma shader_feature_local _ALPHAPREMULTIPLY_ON
|
|
#pragma shader_feature_local _RECEIVE_SHADOWS_OFF
|
|
|
|
// Custom keywords for reflection
|
|
#pragma shader_feature_local _ENABLE_PLANAR_REFLECTION
|
|
#pragma shader_feature_local _REFLECTION_DEPTH_FADE
|
|
|
|
// Instancing
|
|
#pragma multi_compile_instancing
|
|
#pragma multi_compile _ DOTS_INSTANCING_ON
|
|
|
|
#pragma vertex LitPassVertex
|
|
#pragma fragment LitPassFragment
|
|
|
|
// Include URP Lit shaders (NiloToon extension will be applied globally)
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl"
|
|
|
|
ENDHLSL
|
|
}
|
|
|
|
// Shadow Caster Pass
|
|
Pass
|
|
{
|
|
Name "ShadowCaster"
|
|
Tags { "LightMode" = "ShadowCaster" }
|
|
|
|
ZWrite On
|
|
ZTest LEqual
|
|
ColorMask 0
|
|
Cull[_Cull]
|
|
|
|
HLSLPROGRAM
|
|
#pragma target 2.0
|
|
|
|
#pragma shader_feature_local_fragment _ALPHATEST_ON
|
|
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
|
|
#pragma multi_compile_instancing
|
|
#pragma multi_compile _ DOTS_INSTANCING_ON
|
|
|
|
#pragma vertex ShadowPassVertex
|
|
#pragma fragment ShadowPassFragment
|
|
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/ShadowCasterPass.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
// Depth Only Pass
|
|
Pass
|
|
{
|
|
Name "DepthOnly"
|
|
Tags { "LightMode" = "DepthOnly" }
|
|
|
|
ZWrite On
|
|
ColorMask 0
|
|
Cull[_Cull]
|
|
|
|
HLSLPROGRAM
|
|
#pragma target 2.0
|
|
|
|
#pragma shader_feature_local_fragment _ALPHATEST_ON
|
|
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
|
|
#pragma multi_compile_instancing
|
|
#pragma multi_compile _ DOTS_INSTANCING_ON
|
|
|
|
#pragma vertex DepthOnlyVertex
|
|
#pragma fragment DepthOnlyFragment
|
|
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
// Meta Pass (for Lightmapping)
|
|
Pass
|
|
{
|
|
Name "Meta"
|
|
Tags { "LightMode" = "Meta" }
|
|
|
|
Cull Off
|
|
|
|
HLSLPROGRAM
|
|
#pragma target 2.0
|
|
|
|
#pragma shader_feature EDITOR_VISUALIZATION
|
|
#pragma shader_feature_local_fragment _SPECULAR_SETUP
|
|
#pragma shader_feature_local_fragment _EMISSION
|
|
#pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP
|
|
#pragma shader_feature_local_fragment _ALPHATEST_ON
|
|
#pragma shader_feature_local_fragment _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
#pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED
|
|
|
|
#pragma vertex UniversalVertexMeta
|
|
#pragma fragment UniversalFragmentMeta
|
|
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitMetaPass.hlsl"
|
|
|
|
ENDHLSL
|
|
}
|
|
}
|
|
|
|
CustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.LitShader"
|
|
Fallback "Hidden/Universal Render Pipeline/FallbackError"
|
|
}
|