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", 2D) = "white" {
}
_BumpMap("Normal Map", 2D) = "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", 2D) = "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", 2D) = "white" {
}
_OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0
_EmissionColor("Color", Color) = (0,0,0)
_EmissionMap("Emission", 2D) = "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
{
float3 positionWS;
half3 normalWS