URP shader skeleton
URP Custom Lit shader skeleton.
This shader that in order to understanding URP lit shader structure and function type.
Shader "URP_PBR_7.12"
{
Properties
{
[ MainColor] _BaseColor ( "Albedo Color" , Color) = ( 0.5 , 0.5 , 0.5 , 1 )
[ MainTexture] _BaseMap ( "Albedo" , 2 D) = "white" {
}
_BumpMap ( "Normal Map" , 2 D) = "bump" {
}
_BumpScale ( "Scale" , Range ( 1 , 2 ) ) = 1.0
_Smoothness ( "Roughness" , Range ( 0.0 , 1.0 ) ) = 0.5
[ Gamma] _Metallic ( "Metallic" , Range ( 0.0 , 1.0 ) ) = 0.0
_MetallicGlossMap ( "MetallicTexture" , 2 D) = "white" {
}
_SpecColor ( "Specular" , Color) = ( 0.2 , 0.2 , 0.2 )
[ ToggleOff] _SpecularHighlights ( "Specular Highlights" , Float) = 1.0
[ ToggleOff] _EnvironmentReflections ( "Environment Reflections" , Float) = 1.0
_OcclusionMap ( "Occlusion" , 2 D) = "white" {
}
_OcclusionStrength ( "Strength" , Range ( 0.0 , 1.0 ) ) = 1.0
_EmissionColor ( "Color" , Color) = ( 0 , 0 , 0 )
_EmissionMap ( "Emission" , 2 D) = "white" {
}
}
SubShader
{
Tags{
"RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" "IgnoreProjector" = "True" }
LOD 300
Cull Back
HLSLINCLUDE
#pragma target 3.0
ENDHLSL
Pass
{
Name "ForwardLit"
Tags{
"LightMode" = "UniversalForward" }
Name "Base"
Blend One Zero
ZWrite On
ZTest LEqual
Offset 0 , 0
ColorMask RGBA
HLSLPROGRAM
#pragma prefer_hlslcc gles
#pragma exclude_renderers d3d11_9x
#pragma shader_feature _ALPHATEST_ON
#pragma shader_feature _ALPHAPREMULTIPLY_ON
#pragma shader_feature _EMISSION
#pragma shader_feature _METALLICSPECGLOSSMAP
#pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
#pragma shader_feature _SPECULARHIGHLIGHTS_OFF
#pragma shader_feature _ENVIRONMENTREFLECTIONS_OFF
#pragma shader_feature _SPECULAR_SETUP
#pragma shader_feature _RECEIVE_SHADOWS_OFF
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
#pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS
#pragma multi_compile _ _SHADOWS_SOFT
#pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ LIGHTMAP_ON
#pragma multi_compile_fog
#pragma multi_compile_instancing
#pragma vertex vert
#pragma fragment frag
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl"
struct mySurfaceData
{
half3 albedo;
half3 specular;
half metallic;
half roughness;
half3 normalTS;
half3 emission;
half occlusion;
half alpha;
} ;
struct myInputData
{