// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. /// /// Standard shader configured to work best with Mesh Renderers. /// See "Graphics Tools/Standard Canvas" for UnityUI (uGUI) CanvasRenderers support. /// Shader "Graphics Tools/Standard" { Properties { // Main maps. _Color("Color", Color) = (1.0, 1.0, 1.0, 1.0) _MainTex("Albedo", 2D) = "white" {} [Enum(Microsoft.MixedReality.GraphicsTools.Editor.AlbedoAlphaMode)] _AlbedoAlphaMode("Albedo Alpha Mode", Float) = 0 // "Transparency" [Toggle] _AlbedoAssignedAtRuntime("Albedo Assigned at Runtime", Float) = 0.0 _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5 _Fade("Alpha Fade", Range(0.0, 1.0)) = 1.0 _Metallic("Metallic", Range(0.0, 1.0)) = 0.0 _Smoothness("Smoothness", Range(0.0, 1.0)) = 0.5 [Toggle(_CHANNEL_MAP)] _EnableChannelMap("Enable Channel Map", Float) = 0.0 [NoScaleOffset] _ChannelMap("Channel Map", 2D) = "white" {} [Toggle(_NORMAL_MAP)] _EnableNormalMap("Enable Normal Map", Float) = 0.0 [NoScaleOffset] _NormalMap("Normal Map", 2D) = "bump" {} _NormalMapScale("Scale", Float) = 1.0 [Toggle(_EMISSION)] _EnableEmission("Enable Emission", Float) = 0.0 [HDR]_EmissiveColor("Emissive Color", Color) = (0.0, 0.0, 0.0, 1.0) _EmissiveMap("Emissive Map",2D) = "white" {} [Toggle(_TRIPLANAR_MAPPING)] _EnableTriplanarMapping("Triplanar Mapping", Float) = 0.0 [Toggle(_LOCAL_SPACE_TRIPLANAR_MAPPING)] _EnableLocalSpaceTriplanarMapping("Local Space", Float) = 0.0 _TriplanarMappingBlendSharpness("Blend Sharpness", Range(1.0, 16.0)) = 4.0 [Toggle(_USE_SSAA)] _EnableSSAA("Super Sample Anti Aliasing", Float) = 0.0 _MipmapBias("Mipmap Bias", Range(-5.0, 0.0)) = -2.0 // Rendering options. [Toggle(_DIRECTIONAL_LIGHT)] _DirectionalLight("Light Mode", Float) = 1.0 // "LitDirectional" [Toggle(_SPECULAR_HIGHLIGHTS)] _SpecularHighlights("Specular Highlights", Float) = 1.0 [Toggle(_SPHERICAL_HARMONICS)] _SphericalHarmonics("Spherical Harmonics", Float) = 0.0 [Toggle(_NON_PHOTOREALISTIC)] _NPR("Non-Photorealistic Rendering", Float) = 0.0 [Toggle(_REFLECTIONS)] _Reflections("Reflections", Float) = 0.0 [Toggle(_RIM_LIGHT)] _RimLight("Rim Light", Float) = 0.0 _RimColor("Rim Color", Color) = (0.5, 0.5, 0.5, 1.0) _RimPower("Rim Power", Range(0.0, 8.0)) = 0.25 [Toggle(_VERTEX_COLORS)] _VertexColors("Vertex Colors", Float) = 0.0 [Toggle(_VERTEX_EXTRUSION)] _VertexExtrusion("Vertex Extrusion", Float) = 0.0 _VertexExtrusionValue("Vertex Extrusion Value", Float) = 0.0 [Toggle(_VERTEX_EXTRUSION_SMOOTH_NORMALS)] _VertexExtrusionSmoothNormals("Vertex Extrusion Smooth Normals", Float) = 0.0 [Toggle(_VERTEX_EXTRUSION_CONSTANT_WIDTH)] _VertexExtrusionConstantWidth("Vertex Extrusion Constant Width", Float) = 0.0 _BlendedClippingWidth("Clipping Alpha Falloff", Range(0.0, 10.0)) = 0.0 [Toggle(_CLIPPING_BORDER)] _ClippingBorder("Clipping Border", Float) = 0.0 _ClippingBorderWidth("Clipping Border Width", Range(0.0, 1.0)) = 0.025 _ClippingBorderColor("Clipping Border Color", Color) = (1.0, 0.2, 0.0, 1.0) [Toggle(_NEAR_PLANE_FADE)] _NearPlaneFade("Near Plane Fade", Float) = 0.0 [Toggle(_NEAR_LIGHT_FADE)] _NearLightFade("Near Light Fade", Float) = 0.0 _FadeBeginDistance("Fade Begin Distance", Range(0.0, 10.0)) = 0.85 _FadeCompleteDistance("Fade Complete Distance", Range(0.0, 10.0)) = 0.5 _FadeMinValue("Fade Min Value", Range(0.0, 1.0)) = 0.0 // Fluent options. [Toggle(_HOVER_LIGHT)] _HoverLight("Hover Light", Float) = 0.0 [Toggle(_HOVER_COLOR_OVERRIDE)] _EnableHoverColorOverride("Hover Color Override", Float) = 0.0 _HoverColorOverride("Hover Color Override", Color) = (1.0, 1.0, 1.0, 1.0) [Toggle(_PROXIMITY_LIGHT)] _ProximityLight("Proximity Light", Float) = 0.0 [Toggle(_PROXIMITY_LIGHT_COLOR_OVERRIDE)] _EnableProximityLightColorOverride("Proximity Light Color Override", Float) = 0.0 [HDR]_ProximityLightCenterColorOverride("Proximity Light Center Color Override", Color) = (1.0, 0.0, 0.0, 0.0) [HDR]_ProximityLightMiddleColorOverride("Proximity Light Middle Color Override", Color) = (0.0, 1.0, 0.0, 0.5) [HDR]_ProximityLightOuterColorOverride("Proximity Light Outer Color Override", Color) = (0.0, 0.0, 1.0, 1.0) [Toggle(_PROXIMITY_LIGHT_SUBTRACTIVE)] _ProximityLightSubtractive("Proximity Light Subtractive", Float) = 0.0 [Toggle(_PROXIMITY_LIGHT_TWO_SIDED)] _ProximityLightTwoSided("Proximity Light Two Sided", Float) = 0.0 _FluentLightIntensity("Fluent Light Intensity", Range(0.0, 1.0)) = 1.0 [Toggle(_ROUND_CORNERS)] _RoundCorners("Round Corners", Float) = 0.0 _RoundCornerRadius("Round Corner Radius", Range(0.0, 0.5)) = 0.25 _RoundCornerMargin("Round Corner Margin", Range(0.0, 0.5)) = 0.01 [Toggle(_INDEPENDENT_CORNERS)] _IndependentCorners("Independent Corners", Float) = 0.0 _RoundCornersRadius("Round Corners Radius", Vector) = (0.5 ,0.5, 0.5, 0.5) [Toggle(_ROUND_CORNERS_HIDE_INTERIOR)] _RoundCornersHideInterior("Hide Interior", Float) = 0.0 [Toggle(_BORDER_LIGHT)] _BorderLight("Border Light", Float) = 0.0 [Toggle(_BORDER_LIGHT_REPLACES_ALBEDO)] _BorderLightReplacesAlbedo("Border Light Replaces Albedo", Float) = 0.0 [Toggle(_BORDER_LIGHT_OPAQUE)] _BorderLightOpaque("Border Light Opaque", Float) = 0.0 _BorderWidth("Border Width", Range(0.0, 1.0)) = 0.1 [Enum(Microsoft.MixedReality.GraphicsTools.Editor.BorderColorMode)] _BorderColorMode("Border Color Mode", Float) = 0 // "Brightness" _BorderMinValue("Border Min Value", Range(0.0, 1.0)) = 0.1 _BorderColor("Border Color", Color) = (1.0, 1.0, 1.0, 0.0) [Enum(Microsoft.MixedReality.GraphicsTools.Editor.EdgeSmoothingMode)] _EdgeSmoothingMode("Edge Smoothing Mode", Float) = 0 // "Manual" _EdgeSmoothingValue("Edge Smoothing Value", Float) = 0.002 _BorderLightOpaqueAlpha("Border Light Opaque Alpha", Range(0.0, 1.0)) = 1.0 [Toggle(_INNER_GLOW)] _InnerGlow("Inner Glow", Float) = 0.0 _InnerGlowColor("Inner Glow Color (RGB) and Intensity (A)", Color) = (1.0, 1.0, 1.0, 0.75) _InnerGlowPower("Inner Glow Power", Range(2.0, 32.0)) = 4.0 [Enum(Microsoft.MixedReality.GraphicsTools.Editor.GradientMode)] _GradientMode("Gradient Mode", Float) = 0 // "None" [NoScaleOffset] _IridescentSpectrumMap("Iridescent Spectrum Map", 2D) = "white" {} _IridescenceIntensity("Iridescence Intensity", Range(0.0, 1.0)) = 0.5 _IridescenceThreshold("Iridescence Threshold", Range(0.0, 1.0)) = 0.05 _IridescenceAngle("Iridescence Angle", Range(-0.78, 0.78)) = -0.78 _GradientAngle("Gradient Angle", Range(0, 360.0)) = 180 _GradientColor0("Gradient Color 0", Color) = (0.631373, 0.631373, 0.631373, 0.0) _GradientColor1("Gradient Color 1", Color) = (1.0, 0.690196, 0.976471, 0.25) _GradientColor2("Gradient Color 2", Color) = (0.0, 0.33, 0.88, 0.5) _GradientColor3("Gradient Color 3", Color) = (0.0, 0.33, 0.88, 1.0) _GradientColor4("Gradient Color 4", Color) = (1.0, 1.0, 1.0, 1.0) _GradientAlpha("Gradient Alpha", Vector) = (1.0, 1.0, 1.0, 1.0) _GradientAlphaTime("Gradient Alpha Time", Vector) = (0.0, 0.0, 0.0, 0.0) [Toggle(_ENVIRONMENT_COLORING)] _EnvironmentColoring("Environment Coloring", Float) = 0.0 _EnvironmentColorThreshold("Environment Color Threshold", Range(0.0, 3.0)) = 1.5 _EnvironmentColorIntensity("Environment Color Intensity", Range(0.0, 1.0)) = 0.5 _EnvironmentColorX("Environment Color X (RGB)", Color) = (1.0, 0.0, 0.0, 1.0) _EnvironmentColorY("Environment Color Y (RGB)", Color) = (0.0, 1.0, 0.0, 1.0) _EnvironmentColorZ("Environment Color Z (RGB)", Color) = (0.0, 0.0, 1.0, 1.0) [Enum(Microsoft.MixedReality.GraphicsTools.Editor.BlurMode)] _BlurMode("Blur Mode", Float) = 0 // "None" _BlurTextureIntensity("Blur Texture Intensity", Range(0.0, 1.0)) = 1.0 _BlurBorderIntensity("Blur Border Intensity", Range(0.0, 1.0)) = 0.0 _BlurBackgroundRect("Blur Background Rect", Vector) = (0.0, 0.0, 1.0, 1.0) // Advanced options. [Enum(Microsoft.MixedReality.GraphicsTools.Editor.RenderingMode)] _Mode("Rendering Mode", Float) = 0 // "Opaque" [Enum(Microsoft.MixedReality.GraphicsTools.Editor.RenderingMode)] _CustomMode("Mode", Float) = 0 // "Opaque" [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend("Source Blend", Float) = 1 // "One" [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend("Destination Blend", Float) = 0 // "Zero" [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlendAlpha("Source Blend Alpha", Float) = 1 // "One" [Enum(UnityEngine.Rendering.BlendMode)] _DstBlendAlpha("Destination Blend Alpha", Float) = 1 // "One" [Enum(UnityEngine.Rendering.BlendOp)] _BlendOp("Blend Operation", Float) = 0 // "Add" [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("Depth Test", Float) = 4 // "LessEqual" [Enum(Microsoft.MixedReality.GraphicsTools.Editor.DepthWrite)] _ZWrite("Depth Write", Float) = 1 // "On" _ZOffsetFactor("Depth Offset Factor", Float) = 0 // "Zero" _ZOffsetUnits("Depth Offset Units", Float) = 0 // "Zero" [Enum(Microsoft.MixedReality.GraphicsTools.Editor.ColorWriteMask)] _ColorWriteMask("Color Write Mask", Float) = 15 // "All" [Enum(UnityEngine.Rendering.CullMode)] _CullMode("Cull Mode", Float) = 2 // "Back" _RenderQueueOverride("Render Queue Override", Range(-1.0, 5000)) = -1 [Toggle(_USE_WORLD_SCALE)] _UseWorldScale("Absolute Size", Float) = 1.0 [Toggle(_STENCIL)] _EnableStencil("Enable Stencil Testing", Float) = 0.0 _StencilReference("Stencil Reference", Range(0, 255)) = 0 [Enum(UnityEngine.Rendering.CompareFunction)]_StencilComparison("Stencil Comparison", Int) = 0 [Enum(UnityEngine.Rendering.StencilOp)]_StencilOperation("Stencil Operation", Int) = 0 _StencilWriteMask("Stencil Write Mask", Range(0, 255)) = 255 _StencilReadMask("Stencil Read Mask", Range(0, 255)) = 255 } /// /// Sub Shader for the Universal Render Pipeline (URP). /// SubShader { PackageRequirements { "com.unity.render-pipelines.universal": "12.1.0" } Tags { "RenderPipeline" = "UniversalPipeline" "RenderType" = "Opaque" "DisableBatching" = "False" } // Default pass (only pass outside of the editor). Pass { Name "Main" Tags{ "LightMode" = "UniversalForward" } LOD 100 Blend[_SrcBlend][_DstBlend],[_SrcBlendAlpha][_DstBlendAlpha] BlendOp[_BlendOp] ZTest[_ZTest] ZWrite[_ZWrite] Cull[_CullMode] Offset[_ZOffsetFactor],[_ZOffsetUnits] ColorMask[_ColorWriteMask] Stencil { Ref[_StencilReference] Comp[_StencilComparison] Pass[_StencilOperation] ReadMask[_StencilReadMask] WriteMask[_StencilWriteMask] } HLSLPROGRAM #define _URP #pragma multi_compile_instancing #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_local _ _CLIPPING_PLANE _CLIPPING_SPHERE _CLIPPING_BOX #pragma shader_feature_local_fragment _CLIPPING_BORDER #include_with_pragmas "GraphicsToolsStandardProgram.hlsl" ENDHLSL } Pass { Name "ShadowCaster" Tags{"LightMode" = "ShadowCaster"} ZWrite On ZTest LEqual ColorMask 0 Cull[_CullMode] HLSLPROGRAM #define _URP #define _SHADOW_PASS #pragma multi_compile_instancing #pragma shader_feature_local_fragment _CLIPPING_BORDER #include_with_pragmas "GraphicsToolsStandardProgram.hlsl" ENDHLSL } // Extracts information for lightmapping, GI (emission, albedo, ...) // This pass it not used during regular rendering. Pass { Name "Meta" Tags { "LightMode" = "Meta" } HLSLPROGRAM #define _URP #include_with_pragmas "GraphicsToolsStandardMetaProgram.hlsl" ENDHLSL } } /// /// Sub Shader for the Built-in Render Pipeline. /// SubShader { Tags { "RenderType" = "Opaque" "DisableBatching" = "False" } // Default pass (only pass outside of the editor). Pass { Name "Main" Tags{ "LightMode" = "ForwardBase" } LOD 100 Blend[_SrcBlend][_DstBlend],[_SrcBlendAlpha][_DstBlendAlpha] BlendOp[_BlendOp] ZTest[_ZTest] ZWrite[_ZWrite] Cull[_CullMode] Offset[_ZOffsetFactor],[_ZOffsetUnits] ColorMask[_ColorWriteMask] Stencil { Ref[_StencilReference] Comp[_StencilComparison] Pass[_StencilOperation] ReadMask[_StencilReadMask] WriteMask[_StencilWriteMask] } HLSLPROGRAM #pragma multi_compile_instancing #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_local _ _CLIPPING_PLANE _CLIPPING_SPHERE _CLIPPING_BOX #pragma shader_feature_local_fragment _CLIPPING_BORDER #include_with_pragmas "GraphicsToolsStandardProgram.hlsl" ENDHLSL } // Extracts information for lightmapping, GI (emission, albedo, ...) // This pass it not used during regular rendering. Pass { Name "Meta" Tags { "LightMode" = "Meta" } HLSLPROGRAM #include_with_pragmas "GraphicsToolsStandardMetaProgram.hlsl" ENDHLSL } } CustomEditor "Microsoft.MixedReality.GraphicsTools.Editor.StandardShaderGUI" }