Minor - Add Assets And Support Dual Screen
This commit is contained in:
571
Assets/OmniShade/Shaders/OmniShade URP.shader
Normal file
571
Assets/OmniShade/Shaders/OmniShade URP.shader
Normal file
@@ -0,0 +1,571 @@
|
||||
//------------------------------------
|
||||
// OmniShade
|
||||
// Copyright© 2025 OmniShade
|
||||
//------------------------------------
|
||||
|
||||
Shader "OmniShade/Standard URP" {
|
||||
Properties {
|
||||
_MainTex ("Main Texture", 2D) = "white" {}
|
||||
_Color ("Color", Color) = (1, 1, 1, 1)
|
||||
_Brightness ("Brightness", range(0, 25)) = 1
|
||||
_Contrast ("Contrast", range(0, 25)) = 1
|
||||
_Saturation ("Saturation", range(0, 2)) = 1
|
||||
[Toggle] _IgnoreMainTexAlpha ("Ignore Main Texture Alpha", Float) = 0
|
||||
|
||||
[HeaderGroup(Diffuse)]
|
||||
[Toggle(DIFFUSE)] _Diffuse ("Enable Diffuse", Float) = 1
|
||||
_DiffuseWrap ("Diffuse Softness", range(-1, 1)) = 0
|
||||
_DiffuseBrightness ("Diffuse Brightness", range(0, 25)) = 1
|
||||
_DiffuseContrast ("Diffuse Contrast", range(0.01, 25)) = 1
|
||||
[Toggle(DIFFUSE_PER_PIXEL)] _DiffusePerPixel ("Per-Pixel Point Lights", Float) = 0
|
||||
[Toggle(MIXED_LIGHTING)] _MixedLighting ("Enable Baked and Dynamic Lights", Float) = 0
|
||||
|
||||
[HeaderGroup(Specular)]
|
||||
[Toggle(SPECULAR)] _Specular ("Enable Specular", Float) = 0
|
||||
_SpecularColor ("Specular Color", Color) = (1, 1, 1, 1)
|
||||
_SpecularBrightness ("Specular Brightness", range(0, 25)) = 1
|
||||
[PowerSlider(10)] _SpecularSmoothness ("Specular Smoothness", range(1, 500)) = 20
|
||||
_SpecularTex ("Specular Map", 2D) = "white" {}
|
||||
[KeywordEnum(UV1, UV2)] _SpecularUV ("Specular UV", Float) = 0
|
||||
[Toggle(SPECULAR_HAIR)] _SpecularHair ("Specular Hair", Float) = 0
|
||||
|
||||
[HeaderGroup(Normal Map)]
|
||||
[Normal] _NormalTex ("Normal Map", 2D) = "bump" {}
|
||||
[KeywordEnum(UV1, UV2)] _NormalUV ("Normal Map UV", Float) = 0
|
||||
_NormalStrength ("Normal Strength", range(0, 5)) = 1
|
||||
[Normal] _NormalTex2 ("Normal Map 2", 2D) = "bump" {}
|
||||
[KeywordEnum(UV1, UV2)] _NormalUV2 ("Normal Map 2 UV", Float) = 0
|
||||
_Normal2Strength ("Normal 2 Strength", range(0, 5)) = 1
|
||||
|
||||
[HeaderGroup(Occlusion Map)]
|
||||
_LightmapTex ("Occlusion Map", 2D) = "white" {}
|
||||
_LightmapColor ("Occlusion Color", Color) = (1, 1, 1, 1)
|
||||
_LightmapBrightness ("Occlusion Brightness", range(0, 25)) = 1
|
||||
[KeywordEnum(UV1, UV2)] _LightmapUV ("Occlusion UV", Float) = 0
|
||||
|
||||
[HeaderGroup(Rim Light)]
|
||||
[Toggle(RIM)] _Rim ("Enable Rim Light", Float) = 0
|
||||
[HDR] _RimColor ("Rim Color", Color) = (1, 1, 1, 1)
|
||||
_RimAmount ("Rim Amount", range(0, 25)) = 1
|
||||
_RimContrast ("Rim Contrast", range(0, 50)) = 5
|
||||
[KeywordEnum(Alpha Blend, Additive, Multiply, Multiply Lighten, Transparency)] _RimBlend ("Rim Blend Mode", Float) = 1
|
||||
[Toggle] _RimInverse ("Rim Invert", Float) = 0
|
||||
_RimDirection ("Rim Direction", Vector) = (0, 0, 0, 0)
|
||||
|
||||
[HeaderGroup(Reflection)]
|
||||
[Toggle(REFLECTION)] _Reflection ("Enable Reflection", Float) = 0
|
||||
[NoScaleOffset] _ReflectionTex ("Reflection Cubemap", Cube) = "" {}
|
||||
[HDR] _ReflectionColor ("Reflection Color", Color) = (1, 1, 1, 1)
|
||||
_ReflectionAmount ("Reflection Amount", range(0, 1)) = 1
|
||||
[Toggle(REFLECTION_RIM)] _ReflectionRim ("Mask With Rim", Float) = 0
|
||||
[Toggle(REFLECTION_SPECULAR)] _ReflectionSpecular ("Mask With Specular Map", Float) = 0
|
||||
|
||||
[HeaderGroup(Emissive)]
|
||||
[HDR] _Emissive ("Emissive Color", Color) = (0, 0, 0, 0)
|
||||
_EmissiveTex ("Emissive Map", 2D) = "white" {}
|
||||
|
||||
[HeaderGroup(MatCap)]
|
||||
_MatCapTex ("MatCap Texture", 2D) = "black" {}
|
||||
_MatCapColor ("MatCap Color", Color) = (1, 1, 1, 1)
|
||||
_MatCapBrightness ("MatCap Brightness", range(0, 25)) = 1
|
||||
_MatCapContrast ("MatCap Contrast", range(0, 25)) = 1
|
||||
[KeywordEnum(Multiply, Multiply Lighten)] _MatCapBlend ("MatCap Blend Mode", Float) = 0
|
||||
[Toggle(MATCAP_PERSPECTIVE)] _MatCapPerspective ("Perspective Correction", Float) = 1
|
||||
[Toggle(MATCAP_STATIC)] _MatCapStatic ("Use Static Rotation", Float) = 0
|
||||
_MatCapRot ("MatCap Static Rotation", Vector) = (0, 0, 0, 0)
|
||||
|
||||
[HeaderGroup(Vertex Colors)]
|
||||
[Toggle(VERTEX_COLORS)] _VertexColors ("Enable Vertex Colors", Float) = 0
|
||||
_VertexColorsAmount ("Vertex Colors Amount", range(0, 1)) = 1
|
||||
_VertexColorsContrast ("Vertex Colors Contrast", range(0, 25)) = 1
|
||||
|
||||
[HeaderGroup(Detail Map)]
|
||||
_DetailTex ("Detail Map", 2D) = "white" {}
|
||||
_DetailColor ("Detail Color", Color) = (1, 1, 1, 1)
|
||||
_DetailBrightness ("Detail Brightness", range(0, 25)) = 1
|
||||
_DetailContrast ("Detail Contrast", range(0, 25)) = 1
|
||||
[KeywordEnum(Alpha Blend, Additive, Multiply, Multiply Lighten)] _DetailBlend ("Detail Blend Mode", Float) = 2
|
||||
[KeywordEnum(UV1, UV2)] _DetailUV ("Detail UV", Float) = 0
|
||||
[Toggle(DETAIL_LIGHTING)] _DetailLighting ("Apply To Lighting", Float) = 0
|
||||
[Toggle(DETAIL_VERTEX_COLORS)] _DetailVertexColors ("Mask With Vertex Color (A)", Float) = 0
|
||||
|
||||
[HeaderGroup(Layer 1)]
|
||||
_Layer1Tex ("Layer Texture", 2D) = "white" {}
|
||||
_Layer1Color ("Layer Color", Color) = (1, 1, 1, 1)
|
||||
_Layer1Brightness ("Layer Brightness", range(0, 25)) = 1
|
||||
_Layer1Alpha ("Layer Alpha", range(0, 25)) = 1
|
||||
[KeywordEnum(Alpha Blend, Additive, Multiply, Multiply Lighten)] _Layer1Blend ("Layer Blend Mode", Float) = 0
|
||||
[KeywordEnum(UV1, UV2)] _Layer1UV ("Layer 1 UV", Float) = 0
|
||||
[Toggle] _Layer1VertexColor ("Mask With Vertex Color (R)", Float) = 0
|
||||
|
||||
[HeaderGroup(Layer 2)]
|
||||
_Layer2Tex ("Layer Texture", 2D) = "white" {}
|
||||
_Layer2Color ("Layer Color", Color) = (1, 1, 1, 1)
|
||||
_Layer2Brightness ("Layer Brightness", range(0, 25)) = 1
|
||||
_Layer2Alpha ("Layer Alpha", range(0, 25)) = 1
|
||||
[KeywordEnum(Alpha Blend, Additive, Multiply, Multiply Lighten)] _Layer2Blend ("Layer Blend Mode", Float) = 0
|
||||
[KeywordEnum(UV1, UV2)] _Layer2UV ("Layer 2 UV", Float) = 0
|
||||
[Toggle] _Layer2VertexColor ("Mask With Vertex Color (G)", Float) = 0
|
||||
|
||||
[HeaderGroup(Layer 3)]
|
||||
_Layer3Tex ("Layer Texture", 2D) = "white" {}
|
||||
_Layer3Color ("Layer Color", Color) = (1, 1, 1, 1)
|
||||
_Layer3Brightness ("Layer Brightness", range(0, 25)) = 1
|
||||
_Layer3Alpha ("Layer Alpha", range(0, 25)) = 1
|
||||
[KeywordEnum(Alpha Blend, Additive, Multiply, Multiply Lighten)] _Layer3Blend ("Layer Blend Mode", Float) = 0
|
||||
[KeywordEnum(UV1, UV2)] _Layer3UV ("Layer 3 UV", Float) = 0
|
||||
[Toggle] _Layer3VertexColor ("Mask With Vertex Color (B)", Float) = 0
|
||||
|
||||
[HeaderGroup(Transparency Mask)]
|
||||
_TransparencyMaskTex ("Transparency Mask", 2D) = "white" {}
|
||||
_TransparencyMaskAmount ("Mask Amount", range(0, 25)) = 1
|
||||
_TransparencyMaskContrast ("Mask Contrast", range(0, 25)) = 1
|
||||
|
||||
[HeaderGroup(Height Based Colors)]
|
||||
[Toggle(HEIGHT_COLORS)] _HeightColors ("Enable Height Based Colors", Float) = 0
|
||||
_HeightColorsColor ("Color", Color) = (1, 1, 1, 1)
|
||||
_HeightColorsAlpha ("Alpha", range(0, 25)) = 1
|
||||
_HeightColorsHeight ("Height", range(-100, 100)) = 0
|
||||
_HeightColorsEdgeThickness ("Edge Thickness", range(0.001, 100)) = 1
|
||||
_HeightColorsThickness ("Thickness", range(0, 100)) = 0
|
||||
[Enum(World, 0, Local, 1)] _HeightColorsSpace ("Coordinate Space", Float) = 0
|
||||
[KeywordEnum(Alpha Blend, Additive, Lit)] _HeightColorsBlend ("Height Colors Blend Mode", Float) = 0
|
||||
_HeightColorsTex ("Height Colors Texture", 2D) = "white" {}
|
||||
|
||||
[HeaderGroup(Shadow Overlay)]
|
||||
_ShadowOverlayTex ("Shadow Overlay Tex", 2D) = "white" {}
|
||||
_ShadowOverlayBrightness ("Shadow Brightness", range(0, 2)) = 1
|
||||
_ShadowOverlaySpeedU ("Shadow Speed U", range(-5, 5)) = 0.1
|
||||
_ShadowOverlaySpeedV ("Shadow Speed V", range(-5, 5)) = 0.03
|
||||
_ShadowOverlaySwayAmount ("Shadow Sway Amount", range(0, 0.01)) = 0.01
|
||||
[KeywordEnum(Scroll, Sway)] _ShadowOverlayAnimation ("Animation Type", Float) = 0
|
||||
|
||||
[HeaderGroup(Plant Sway)]
|
||||
[Toggle(PLANT_SWAY)] _Plant ("Enable Plant Sway", Float) = 0
|
||||
_PlantSwayAmount ("Sway Amount", range(0, 10)) = 0.15
|
||||
_PlantSwaySpeed ("Sway Speed", range(0, 10)) = 1
|
||||
_PlantBaseHeight ("Base Height", range(-100, 100)) = 0
|
||||
_PlantPhaseVariation ("Phase Variation", range(0, 100)) = 0.3
|
||||
[KeywordEnum(Plant, Leaf, Vertex Color Alpha)] _PlantType ("Plant Type", Float) = 0
|
||||
[Toggle(PLANT_SWAY_LOCAL)] _PlantLocal ("Use Local Space", Float) = 0
|
||||
|
||||
[HeaderGroup(Outline)]
|
||||
[Toggle(OUTLINE)] _Outline ("Enable Outline", Float) = 0
|
||||
_OutlineWidth ("Outline Width", range(0, 0.1)) = 0.002
|
||||
[Toggle(OUTLINE_WIDTH_INDEPENDENT)] _OutlineWidthIndependent ("Outline Width Camera-Independent", Float) = 0
|
||||
_OutlineColor ("Outline Color", Color) = (0, 0, 0, 1)
|
||||
_OutlineZPos ("Outline Z Offset", Range(-0.1, 1)) = 0
|
||||
[Enum(Show, 8, Hide, 6)] _OutlineComp ("Interior Outlines", Float) = 8
|
||||
_OutlineGroup ("Outline Group", Float) = 0
|
||||
[HideInInspector] _OutlinePass ("Outline Pass", Float) = 0
|
||||
|
||||
[HeaderGroup(Anime)]
|
||||
[Toggle(ANIME)] _Anime ("Enable Anime", Float) = 0
|
||||
[HDR] _AnimeColor1 ("Color 1", Color) = (1, 1, 1, 1)
|
||||
_AnimeThreshold1 ("Luminance Threshold 1", range(0, 3)) = 0.45
|
||||
[HDR] _AnimeColor2 ("Color 2", Color) = (1.35, 1.35, 1.35, 1)
|
||||
_AnimeThreshold2 ("Luminance Threshold 2", range(0, 3)) = 0.85
|
||||
[HDR] _AnimeColor3 ("Color 3", Color) = (2, 2, 2, 1)
|
||||
_AnimeSoftness ("Softness", range(0, 0.25)) = 0.01
|
||||
|
||||
[HeaderGroup(Camera Fade)]
|
||||
_CameraFadeStart ("Fade Start Distance", range(0, 25)) = 0
|
||||
_CameraFadeEnd ("Fade End Distance", range(0, 25)) = 0
|
||||
[Toggle] _CameraFadeInvert ("Invert", Float) = 0
|
||||
|
||||
[HeaderGroup(UV Tile Discard)]
|
||||
[Toggle(UVTILE)] _UVTile ("Enable UV Tile Discard", Float) = 0
|
||||
[Enum(UV0, 1, UV1, 2, UV2, 3, UV3, 4)] _UVTileDiscardUV ("Discard UV", Float) = 1
|
||||
[Toggle] _UVTileV3U0 ("v = 3", Float) = 0
|
||||
[Toggle] _UVTileV3U1 ("", Float) = 0
|
||||
[Toggle] _UVTileV3U2 ("", Float) = 0
|
||||
[Toggle] _UVTileV3U3 ("", Float) = 0
|
||||
[Toggle] _UVTileV2U0 ("v = 2", Float) = 0
|
||||
[Toggle] _UVTileV2U1 ("", Float) = 0
|
||||
[Toggle] _UVTileV2U2 ("", Float) = 0
|
||||
[Toggle] _UVTileV2U3 ("", Float) = 0
|
||||
[Toggle] _UVTileV1U0 ("v = 1", Float) = 0
|
||||
[Toggle] _UVTileV1U1 ("", Float) = 0
|
||||
[Toggle] _UVTileV1U2 ("", Float) = 0
|
||||
[Toggle] _UVTileV1U3 ("", Float) = 0
|
||||
[Toggle] _UVTileV0U0 ("v = 0", Float) = 0
|
||||
[Toggle] _UVTileV0U1 ("", Float) = 0
|
||||
[Toggle] _UVTileV0U2 ("", Float) = 0
|
||||
[Toggle] _UVTileV0U3 ("", Float) = 0
|
||||
|
||||
[HeaderGroup(Environment And Shadows)]
|
||||
_AmbientBrightness ("Ambient Brightness", range(0, 25)) = 1
|
||||
[Toggle(FOG)] _Fog ("Enable Fog", Float) = 1
|
||||
|
||||
[Header(Shadows)]
|
||||
[Toggle(SHADOWS_ENABLED)] _ShadowsEnabled ("Enable Shadows", Float) = 1
|
||||
[HDR] _ShadowColor ("Shadow Color", Color) = (0.3, 0.3, 0.3, 1)
|
||||
|
||||
[HeaderGroup(Culling And Blending)]
|
||||
[Enum(Opaque, 0, Transparent, 1, Transparent Additive, 2, Transparent Additive Alpha, 3, Opaque Cutout, 4)] _Preset ("Culling And Blend Preset", Float) = 0
|
||||
|
||||
[Header(Culling)]
|
||||
[Enum(UnityEngine.Rendering.CullMode)] _Cull ("Culling", Float) = 2 // Back
|
||||
[Enum(Off, 0, On, 1)] _ZWrite ("Z Write", Float) = 1.0 // On
|
||||
[Enum(UnityEngine.Rendering.CompareFunction)] _ZTest ("Z Test", Float) = 4 // LessEqual
|
||||
_ZOffset ("Depth Offset", range(-5, 5)) = 0
|
||||
[Toggle(CUTOUT)] _Cutout ("Cutout Transparency", Float) = 0
|
||||
_CutoutCutoff ("Cutoff", range(0, 1)) = 0.5
|
||||
|
||||
[Header(Blending)]
|
||||
[Enum(UnityEngine.Rendering.BlendMode)] _SourceBlend ("Source Blend", Float) = 1 // One
|
||||
[Enum(UnityEngine.Rendering.BlendMode)] _DestBlend ("Dest Blend", Float) = 0 // Zero
|
||||
[Enum(UnityEngine.Rendering.BlendOp)] _BlendOp ("Blend Mode", Float) = 0 // Add
|
||||
|
||||
[HeaderGroup(Rendering)]
|
||||
[Toggle(FLAT)] _Flat ("Enable Flat Shading", Float) = 0
|
||||
}
|
||||
|
||||
Subshader {
|
||||
Name "Normal Shader"
|
||||
|
||||
Pass {
|
||||
Name "UniversalForward"
|
||||
Tags { "RenderPipeline" = "UniversalPipeline" "LightMode" = "UniversalForward" }
|
||||
Cull [_Cull]
|
||||
ZWrite [_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
Blend [_SourceBlend][_DestBlend]
|
||||
BlendOp [_BlendOp]
|
||||
|
||||
Stencil {
|
||||
Ref [_OutlineGroup]
|
||||
Pass [_OutlinePass]
|
||||
}
|
||||
|
||||
HLSLPROGRAM
|
||||
#define URP 1
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
|
||||
#if UNITY_VERSION >= 202203
|
||||
#include_with_pragmas "ShaderLibrary/FoveatedRenderingKeywords.hlsl"
|
||||
#endif
|
||||
#include "OmniShadeCore.cginc"
|
||||
#pragma target 3.5
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_fog
|
||||
#pragma multi_compile_instancing
|
||||
#pragma multi_compile _ _ADDITIONAL_LIGHTS
|
||||
#pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS
|
||||
#pragma multi_compile _ LIGHTMAP_ON
|
||||
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
|
||||
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS
|
||||
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
|
||||
#pragma multi_compile _ _SHADOWS_SOFT
|
||||
// Uncomment the below features if using them (multiple occurences in file so do a search)
|
||||
// #pragma multi_compile _ _LIGHT_LAYERS
|
||||
// #pragma multi_compile _ _LIGHT_COOKIES
|
||||
// #pragma multi_compile _ _SCREEN_SPACE_OCCLUSION
|
||||
#if UNITY_VERSION > 60001000
|
||||
#pragma multi_compile _ _CLUSTER_LIGHT_LOOP
|
||||
#elif UNITY_VERSION > 202203
|
||||
#pragma multi_compile _ _FORWARD_PLUS
|
||||
#endif
|
||||
#pragma shader_feature BASE_CONTRAST
|
||||
#pragma shader_feature BASE_SATURATION
|
||||
#pragma shader_feature DIFFUSE
|
||||
#pragma shader_feature DIFFUSE_PER_PIXEL
|
||||
#pragma shader_feature MIXED_LIGHTING
|
||||
#pragma shader_feature SPECULAR
|
||||
#pragma shader_feature SPECULAR_MAP
|
||||
#pragma shader_feature _SPECULARUV_UV1 _SPECULARUV_UV2
|
||||
#pragma shader_feature SPECULAR_HAIR
|
||||
#pragma shader_feature RIM
|
||||
#pragma shader_feature _RIMBLEND_ALPHA_BLEND _RIMBLEND_ADDITIVE _RIMBLEND_MULTIPLY _RIMBLEND_MULTIPLY_LIGHTEN _RIMBLEND_TRANSPARENCY
|
||||
#pragma shader_feature RIM_DIRECTION
|
||||
#pragma shader_feature REFLECTION
|
||||
#pragma shader_feature REFLECTION_TEX
|
||||
#pragma shader_feature REFLECTION_RIM
|
||||
#pragma shader_feature REFLECTION_SPECULAR
|
||||
#pragma shader_feature NORMAL_MAP
|
||||
#pragma shader_feature NORMAL_MAP2
|
||||
#pragma shader_feature _NORMALUV_UV1 _NORMALUV_UV2
|
||||
#pragma shader_feature _NORMALUV2_UV1 _NORMALUV2_UV2
|
||||
#pragma shader_feature LIGHT_MAP
|
||||
#pragma shader_feature _LIGHTMAPUV_UV1 _LIGHTMAPUV_UV2
|
||||
#pragma shader_feature EMISSIVE_MAP
|
||||
#pragma shader_feature MATCAP
|
||||
#pragma shader_feature MATCAP_CONTRAST
|
||||
#pragma shader_feature _MATCAPBLEND_MULTIPLY _MATCAPBLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature MATCAP_PERSPECTIVE
|
||||
#pragma shader_feature MATCAP_STATIC
|
||||
#pragma shader_feature VERTEX_COLORS
|
||||
#pragma shader_feature VERTEX_COLORS_CONTRAST
|
||||
#pragma shader_feature DETAIL
|
||||
#pragma shader_feature DETAIL_CONTRAST
|
||||
#pragma shader_feature _DETAILBLEND_ALPHA_BLEND _DETAILBLEND_ADDITIVE _DETAILBLEND_MULTIPLY _DETAILBLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _DETAILUV_UV1 _DETAILUV_UV2
|
||||
#pragma shader_feature DETAIL_LIGHTING
|
||||
#pragma shader_feature DETAIL_VERTEX_COLORS
|
||||
#pragma shader_feature LAYER1
|
||||
#pragma shader_feature _LAYER1BLEND_ALPHA_BLEND _LAYER1BLEND_ADDITIVE _LAYER1BLEND_MULTIPLY _LAYER1BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER1UV_UV1 _LAYER1UV_UV2
|
||||
#pragma shader_feature LAYER2
|
||||
#pragma shader_feature _LAYER2BLEND_ALPHA_BLEND _LAYER2BLEND_ADDITIVE _LAYER2BLEND_MULTIPLY _LAYER2BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER2UV_UV1 _LAYER2UV_UV2
|
||||
#pragma shader_feature LAYER3
|
||||
#pragma shader_feature _LAYER3BLEND_ALPHA_BLEND _LAYER3BLEND_ADDITIVE _LAYER3BLEND_MULTIPLY _LAYER3BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER3UV_UV1 _LAYER3UV_UV2
|
||||
#pragma shader_feature TRANSPARENCY_MASK
|
||||
#pragma shader_feature TRANSPARENCY_MASK_CONTRAST
|
||||
#pragma shader_feature HEIGHT_COLORS
|
||||
#pragma shader_feature _HEIGHTCOLORSBLEND_ALPHA_BLEND _HEIGHTCOLORSBLEND_ADDITIVE _HEIGHTCOLORSBLEND_LIT
|
||||
#pragma shader_feature HEIGHT_COLORS_TEX
|
||||
#pragma shader_feature SHADOW_OVERLAY
|
||||
#pragma shader_feature _SHADOWOVERLAYANIMATION_SCROLL _SHADOWOVERLAYANIMATION_SWAY
|
||||
#pragma shader_feature PLANT_SWAY
|
||||
#pragma shader_feature PLANT_SWAY_LOCAL
|
||||
#pragma shader_feature _PLANTTYPE_PLANT _PLANTTYPE_LEAF _PLANTTYPE_VERTEX_COLOR_ALPHA
|
||||
#pragma shader_feature ANIME
|
||||
#pragma shader_feature ANIME_SOFT
|
||||
#pragma shader_feature CAMERA_FADE
|
||||
#pragma shader_feature UVTILE
|
||||
#pragma shader_feature AMBIENT
|
||||
#pragma shader_feature FOG
|
||||
#pragma shader_feature SHADOWS_ENABLED
|
||||
#pragma shader_feature ZOFFSET
|
||||
#pragma shader_feature CUTOUT
|
||||
#pragma shader_feature FLAT
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass {
|
||||
Name "Outline"
|
||||
Tags { "RenderPipeline" = "UniversalPipeline" "LightMode" = "SRPDefaultUnlit" }
|
||||
Cull Front
|
||||
Blend One Zero
|
||||
|
||||
Stencil {
|
||||
Ref [_OutlineGroup]
|
||||
Comp [_OutlineComp]
|
||||
}
|
||||
|
||||
HLSLPROGRAM
|
||||
#define URP 1
|
||||
#define OUTLINE_PASS 1
|
||||
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
|
||||
#include "OmniShadeCore.cginc"
|
||||
#pragma target 3.5
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_instancing
|
||||
#pragma shader_feature TRANSPARENCY_MASK
|
||||
#pragma shader_feature TRANSPARENCY_MASK_CONTRAST
|
||||
#pragma shader_feature PLANT_SWAY
|
||||
#pragma shader_feature PLANT_SWAY_LOCAL
|
||||
#pragma shader_feature _PLANTTYPE_PLANT _PLANTTYPE_LEAF _PLANTTYPE_VERTEX_COLOR_ALPHA
|
||||
#pragma shader_feature OUTLINE
|
||||
#pragma shader_feature OUTLINE_WIDTH_INDEPENDENT
|
||||
#pragma shader_feature OUTLINE_PASS_DISABLED
|
||||
#pragma shader_feature CAMERA_FADE
|
||||
#pragma shader_feature UVTILE
|
||||
#pragma shader_feature ZOFFSET
|
||||
#pragma shader_feature CUTOUT
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass {
|
||||
Name "ShadowCaster"
|
||||
Tags { "RenderPipeline" = "UniversalPipeline" "LightMode" = "ShadowCaster" }
|
||||
Cull [_Cull]
|
||||
ZWrite [_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
Blend [_SourceBlend][_DestBlend]
|
||||
BlendOp [_BlendOp]
|
||||
|
||||
HLSLPROGRAM
|
||||
#define URP 1
|
||||
#define SHADOW_CASTER 1
|
||||
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/Shaders/ShadowCasterPass.hlsl"
|
||||
#include "OmniShadeCore.cginc"
|
||||
#pragma target 3.5
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_instancing
|
||||
#pragma shader_feature TRANSPARENCY_MASK
|
||||
#pragma shader_feature TRANSPARENCY_MASK_CONTRAST
|
||||
#pragma shader_feature PLANT_SWAY
|
||||
#pragma shader_feature PLANT_SWAY_LOCAL
|
||||
#pragma shader_feature _PLANTTYPE_PLANT _PLANTTYPE_LEAF _PLANTTYPE_VERTEX_COLOR_ALPHA
|
||||
#pragma shader_feature UVTILE
|
||||
#pragma shader_feature CUTOUT
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass {
|
||||
Name "DepthOnly"
|
||||
Tags { "RenderPipeline" = "UniversalPipeline" "LightMode" = "DepthOnly" }
|
||||
Cull [_Cull]
|
||||
ZWrite [_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
Blend [_SourceBlend][_DestBlend]
|
||||
BlendOp [_BlendOp]
|
||||
|
||||
HLSLPROGRAM
|
||||
#define URP 1
|
||||
#define DEPTH 1
|
||||
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
|
||||
#include "OmniShadeCore.cginc"
|
||||
#pragma target 3.5
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_instancing
|
||||
#pragma shader_feature TRANSPARENCY_MASK
|
||||
#pragma shader_feature TRANSPARENCY_MASK_CONTRAST
|
||||
#pragma shader_feature PLANT_SWAY
|
||||
#pragma shader_feature PLANT_SWAY_LOCAL
|
||||
#pragma shader_feature _PLANTTYPE_PLANT _PLANTTYPE_LEAF _PLANTTYPE_VERTEX_COLOR_ALPHA
|
||||
#pragma shader_feature UVTILE
|
||||
#pragma shader_feature CUTOUT
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass {
|
||||
Name "DepthNormals"
|
||||
Tags { "RenderPipeline" = "UniversalPipeline" "LightMode" = "DepthNormals" }
|
||||
Cull [_Cull]
|
||||
ZWrite [_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
Blend [_SourceBlend][_DestBlend]
|
||||
BlendOp [_BlendOp]
|
||||
|
||||
HLSLPROGRAM
|
||||
#define URP 1
|
||||
#define DEPTH_NORMALS 1
|
||||
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
|
||||
#include "OmniShadeCore.cginc"
|
||||
#pragma target 3.5
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_instancing
|
||||
#pragma shader_feature TRANSPARENCY_MASK
|
||||
#pragma shader_feature TRANSPARENCY_MASK_CONTRAST
|
||||
#pragma shader_feature PLANT_SWAY
|
||||
#pragma shader_feature PLANT_SWAY_LOCAL
|
||||
#pragma shader_feature _PLANTTYPE_PLANT _PLANTTYPE_LEAF _PLANTTYPE_VERTEX_COLOR_ALPHA
|
||||
#pragma shader_feature UVTILE
|
||||
#pragma shader_feature CUTOUT
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass {
|
||||
Name "Meta"
|
||||
Tags { "RenderPipeline" = "UniversalPipeline" "LightMode" = "Meta" }
|
||||
Cull Off
|
||||
ZWrite [_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
Blend [_SourceBlend][_DestBlend]
|
||||
BlendOp [_BlendOp]
|
||||
|
||||
HLSLPROGRAM
|
||||
#define URP 1
|
||||
#define META 1
|
||||
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/MetaInput.hlsl"
|
||||
#include "OmniShadeCore.cginc"
|
||||
#pragma target 3.5
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_instancing
|
||||
// #pragma multi_compile _ _LIGHT_LAYERS
|
||||
#pragma shader_feature BASE_CONTRAST
|
||||
#pragma shader_feature EMISSIVE_MAP
|
||||
#pragma shader_feature MATCAP
|
||||
#pragma shader_feature MATCAP_CONTRAST
|
||||
#pragma shader_feature _MATCAPBLEND_MULTIPLY _MATCAPBLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature VERTEX_COLORS
|
||||
#pragma shader_feature VERTEX_COLORS_CONTRAST
|
||||
#pragma shader_feature DETAIL
|
||||
#pragma shader_feature DETAIL_CONTRAST
|
||||
#pragma shader_feature _DETAILBLEND_ALPHA_BLEND _DETAILBLEND_ADDITIVE _DETAILBLEND_MULTIPLY _DETAILBLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _DETAILUV_UV1 _DETAILUV_UV2
|
||||
#pragma shader_feature DETAIL_LIGHTING
|
||||
#pragma shader_feature DETAIL_VERTEX_COLORS
|
||||
#pragma shader_feature LAYER1
|
||||
#pragma shader_feature _LAYER1BLEND_ALPHA_BLEND _LAYER1BLEND_ADDITIVE _LAYER1BLEND_MULTIPLY _LAYER1BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER1UV_UV1 _LAYER1UV_UV2
|
||||
#pragma shader_feature LAYER2
|
||||
#pragma shader_feature _LAYER2BLEND_ALPHA_BLEND _LAYER2BLEND_ADDITIVE _LAYER2BLEND_MULTIPLY _LAYER2BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER2UV_UV1 _LAYER2UV_UV2
|
||||
#pragma shader_feature LAYER3
|
||||
#pragma shader_feature _LAYER3BLEND_ALPHA_BLEND _LAYER3BLEND_ADDITIVE _LAYER3BLEND_MULTIPLY _LAYER3BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER3UV_UV1 _LAYER3UV_UV2
|
||||
#pragma shader_feature TRANSPARENCY_MASK
|
||||
#pragma shader_feature TRANSPARENCY_MASK_CONTRAST
|
||||
#pragma shader_feature HEIGHT_COLORS
|
||||
#pragma shader_feature _HEIGHTCOLORSBLEND_ALPHA_BLEND _HEIGHTCOLORSBLEND_ADDITIVE _HEIGHTCOLORSBLEND_LIT
|
||||
#pragma shader_feature HEIGHT_COLORS_TEX
|
||||
#pragma shader_feature UVTILE
|
||||
#pragma shader_feature CUTOUT
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
|
||||
Subshader {
|
||||
Name "Fallback Shader"
|
||||
|
||||
Pass {
|
||||
Name "Fallback"
|
||||
Tags { "RenderPipeline" = "UniversalPipeline" "LightMode" = "UniversalForward" }
|
||||
Cull [_Cull]
|
||||
ZWrite [_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
Blend [_SourceBlend][_DestBlend]
|
||||
BlendOp [_BlendOp]
|
||||
|
||||
HLSLPROGRAM
|
||||
#define URP 1
|
||||
#define FALLBACK_PASS 1
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
|
||||
#if UNITY_VERSION >= 202203
|
||||
#include_with_pragmas "ShaderLibrary/FoveatedRenderingKeywords.hlsl"
|
||||
#endif
|
||||
#include "OmniShadeCore.cginc"
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_fog
|
||||
// #pragma multi_compile _ LIGHTMAP_ON
|
||||
// #pragma multi_compile _ _LIGHT_LAYERS
|
||||
// #pragma multi_compile _ _LIGHT_COOKIES
|
||||
#pragma shader_feature BASE_SATURATION
|
||||
#pragma shader_feature DIFFUSE
|
||||
#pragma shader_feature MIXED_LIGHTING
|
||||
#pragma shader_feature SPECULAR
|
||||
#pragma shader_feature RIM
|
||||
#pragma shader_feature _RIMBLEND_ALPHA_BLEND _RIMBLEND_ADDITIVE _RIMBLEND_MULTIPLY _RIMBLEND_MULTIPLY_LIGHTEN _RIMBLEND_TRANSPARENCY
|
||||
#pragma shader_feature LIGHT_MAP
|
||||
#pragma shader_feature _LIGHTMAPUV_UV1 _LIGHTMAPUV_UV2
|
||||
#pragma shader_feature MATCAP
|
||||
#pragma shader_feature _MATCAPBLEND_MULTIPLY _MATCAPBLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature MATCAP_STATIC
|
||||
#pragma shader_feature VERTEX_COLORS
|
||||
#pragma shader_feature LAYER1
|
||||
#pragma shader_feature _LAYER1BLEND_ALPHA_BLEND _LAYER1BLEND_ADDITIVE _LAYER1BLEND_MULTIPLY _LAYER1BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER1UV_UV1 _LAYER1UV_UV2
|
||||
#pragma shader_feature LAYER2
|
||||
#pragma shader_feature _LAYER2BLEND_ALPHA_BLEND _LAYER2BLEND_ADDITIVE _LAYER2BLEND_MULTIPLY _LAYER2BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER2UV_UV1 _LAYER2UV_UV2
|
||||
#pragma shader_feature LAYER3
|
||||
#pragma shader_feature _LAYER3BLEND_ALPHA_BLEND _LAYER3BLEND_ADDITIVE _LAYER3BLEND_MULTIPLY _LAYER3BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER3UV_UV1 _LAYER3UV_UV2
|
||||
#pragma shader_feature TRANSPARENCY_MASK
|
||||
#pragma shader_feature ANIME
|
||||
#pragma shader_feature UVTILE
|
||||
#pragma shader_feature AMBIENT
|
||||
#pragma shader_feature FOG
|
||||
#pragma shader_feature ZOFFSET
|
||||
#pragma shader_feature CUTOUT
|
||||
#pragma shader_feature FLAT
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
|
||||
CustomEditor "OmniShadeGUI"
|
||||
// float4 color : COLOR; This line is for Polybrush support
|
||||
}
|
||||
17
Assets/OmniShade/Shaders/OmniShade URP.shader.meta
Normal file
17
Assets/OmniShade/Shaders/OmniShade URP.shader.meta
Normal file
@@ -0,0 +1,17 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a2a06e22c08354d9699356710b69ca9c
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
preprocessorOverride: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 215111
|
||||
packageName: OmniShade - Mobile Optimized Shader
|
||||
packageVersion: 1.9.5
|
||||
assetPath: Assets/OmniShade/Shaders/OmniShade URP.shader
|
||||
uploadId: 825160
|
||||
493
Assets/OmniShade/Shaders/OmniShade.shader
Normal file
493
Assets/OmniShade/Shaders/OmniShade.shader
Normal file
@@ -0,0 +1,493 @@
|
||||
//------------------------------------
|
||||
// OmniShade
|
||||
// Copyright© 2025 OmniShade
|
||||
//------------------------------------
|
||||
|
||||
Shader "OmniShade/Standard" {
|
||||
Properties {
|
||||
_MainTex ("Main Texture", 2D) = "white" {}
|
||||
_Color ("Color", Color) = (1, 1, 1, 1)
|
||||
_Brightness ("Brightness", range(0, 25)) = 1
|
||||
_Contrast ("Contrast", range(0, 25)) = 1
|
||||
_Saturation ("Saturation", range(0, 2)) = 1
|
||||
[Toggle] _IgnoreMainTexAlpha ("Ignore Main Texture Alpha", Float) = 0
|
||||
|
||||
[HeaderGroup(Diffuse)]
|
||||
[Toggle(DIFFUSE)] _Diffuse ("Enable Diffuse", Float) = 1
|
||||
_DiffuseWrap ("Diffuse Softness", range(-1, 1)) = 0
|
||||
_DiffuseBrightness ("Diffuse Brightness", range(0, 25)) = 1
|
||||
_DiffuseContrast ("Diffuse Contrast", range(0.01, 25)) = 1
|
||||
[Toggle(DIFFUSE_PER_PIXEL)] _DiffusePerPixel ("Per-Pixel Point Lights", Float) = 0
|
||||
|
||||
[HeaderGroup(Specular)]
|
||||
[Toggle(SPECULAR)] _Specular ("Enable Specular", Float) = 0
|
||||
_SpecularColor ("Specular Color", Color) = (1, 1, 1, 1)
|
||||
_SpecularBrightness ("Specular Brightness", range(0, 25)) = 1
|
||||
[PowerSlider(10)] _SpecularSmoothness ("Specular Smoothness", range(1, 500)) = 20
|
||||
_SpecularTex ("Specular Map", 2D) = "white" {}
|
||||
[KeywordEnum(UV1, UV2)] _SpecularUV ("Specular UV", Float) = 0
|
||||
[Toggle(SPECULAR_HAIR)] _SpecularHair ("Specular Hair", Float) = 0
|
||||
|
||||
[HeaderGroup(Normal Map)]
|
||||
[Normal] _NormalTex ("Normal Map", 2D) = "bump" {}
|
||||
[KeywordEnum(UV1, UV2)] _NormalUV ("Normal Map UV", Float) = 0
|
||||
_NormalStrength ("Normal Strength", range(0, 5)) = 1
|
||||
[Normal] _NormalTex2 ("Normal Map 2", 2D) = "bump" {}
|
||||
[KeywordEnum(UV1, UV2)] _NormalUV2 ("Normal Map 2 UV", Float) = 0
|
||||
_Normal2Strength ("Normal 2 Strength", range(0, 5)) = 1
|
||||
|
||||
[HeaderGroup(Occlusion Map)]
|
||||
_LightmapTex ("Occlusion Map", 2D) = "white" {}
|
||||
_LightmapColor ("Occlusion Color", Color) = (1, 1, 1, 1)
|
||||
_LightmapBrightness ("Occlusion Brightness", range(0, 25)) = 1
|
||||
[KeywordEnum(UV1, UV2)] _LightmapUV ("Occlusion UV", Float) = 0
|
||||
|
||||
[HeaderGroup(Rim Light)]
|
||||
[Toggle(RIM)] _Rim ("Enable Rim Light", Float) = 0
|
||||
[HDR] _RimColor ("Rim Color", Color) = (1, 1, 1, 1)
|
||||
_RimAmount ("Rim Amount", range(0, 25)) = 1
|
||||
_RimContrast ("Rim Contrast", range(0, 50)) = 5
|
||||
[KeywordEnum(Alpha Blend, Additive, Multiply, Multiply Lighten, Transparency)] _RimBlend ("Rim Blend Mode", Float) = 1
|
||||
[Toggle] _RimInverse ("Rim Invert", Float) = 0
|
||||
_RimDirection ("Rim Direction", Vector) = (0, 0, 0, 0)
|
||||
|
||||
[HeaderGroup(Reflection)]
|
||||
[Toggle(REFLECTION)] _Reflection ("Enable Reflection", Float) = 0
|
||||
[NoScaleOffset] _ReflectionTex ("Reflection Cubemap", Cube) = "" {}
|
||||
[HDR] _ReflectionColor ("Reflection Color", Color) = (1, 1, 1, 1)
|
||||
_ReflectionAmount ("Reflection Amount", range(0, 1)) = 1
|
||||
[Toggle(REFLECTION_RIM)] _ReflectionRim ("Mask With Rim", Float) = 0
|
||||
[Toggle(REFLECTION_SPECULAR)] _ReflectionSpecular ("Mask With Specular Map", Float) = 0
|
||||
|
||||
[HeaderGroup(Emissive)]
|
||||
[HDR] _Emissive ("Emissive Color", Color) = (0, 0, 0, 0)
|
||||
_EmissiveTex ("Emissive Map", 2D) = "white" {}
|
||||
|
||||
[HeaderGroup(MatCap)]
|
||||
_MatCapTex ("MatCap Texture", 2D) = "black" {}
|
||||
_MatCapColor ("MatCap Color", Color) = (1, 1, 1, 1)
|
||||
_MatCapBrightness ("MatCap Brightness", range(0, 25)) = 1
|
||||
_MatCapContrast ("MatCap Contrast", range(0, 25)) = 1
|
||||
[KeywordEnum(Multiply, Multiply Lighten)] _MatCapBlend ("MatCap Blend Mode", Float) = 0
|
||||
[Toggle(MATCAP_PERSPECTIVE)] _MatCapPerspective ("Perspective Correction", Float) = 1
|
||||
[Toggle(MATCAP_STATIC)] _MatCapStatic ("Use Static Rotation", Float) = 0
|
||||
_MatCapRot ("MatCap Static Rotation", Vector) = (0, 0, 0, 0)
|
||||
|
||||
[HeaderGroup(Vertex Colors)]
|
||||
[Toggle(VERTEX_COLORS)] _VertexColors ("Enable Vertex Colors", Float) = 0
|
||||
_VertexColorsAmount ("Vertex Colors Amount", range(0, 1)) = 1
|
||||
_VertexColorsContrast ("Vertex Colors Contrast", range(0, 25)) = 1
|
||||
|
||||
[HeaderGroup(Detail Map)]
|
||||
_DetailTex ("Detail Map", 2D) = "white" {}
|
||||
_DetailColor ("Detail Color", Color) = (1, 1, 1, 1)
|
||||
_DetailBrightness ("Detail Brightness", range(0, 25)) = 1
|
||||
_DetailContrast ("Detail Contrast", range(0, 25)) = 1
|
||||
[KeywordEnum(Alpha Blend, Additive, Multiply, Multiply Lighten)] _DetailBlend ("Detail Blend Mode", Float) = 2
|
||||
[KeywordEnum(UV1, UV2)] _DetailUV ("Detail UV", Float) = 0
|
||||
[Toggle(DETAIL_LIGHTING)] _DetailLighting ("Apply To Lighting", Float) = 0
|
||||
[Toggle(DETAIL_VERTEX_COLORS)] _DetailVertexColors ("Mask With Vertex Color (A)", Float) = 0
|
||||
|
||||
[HeaderGroup(Layer 1)]
|
||||
_Layer1Tex ("Layer Texture", 2D) = "white" {}
|
||||
_Layer1Color ("Layer Color", Color) = (1, 1, 1, 1)
|
||||
_Layer1Brightness ("Layer Brightness", range(0, 25)) = 1
|
||||
_Layer1Alpha ("Layer Alpha", range(0, 25)) = 1
|
||||
[KeywordEnum(Alpha Blend, Additive, Multiply, Multiply Lighten)] _Layer1Blend ("Layer Blend Mode", Float) = 0
|
||||
[KeywordEnum(UV1, UV2)] _Layer1UV ("Layer 1 UV", Float) = 0
|
||||
[Toggle] _Layer1VertexColor ("Mask With Vertex Color (R)", Float) = 0
|
||||
|
||||
[HeaderGroup(Layer 2)]
|
||||
_Layer2Tex ("Layer Texture", 2D) = "white" {}
|
||||
_Layer2Color ("Layer Color", Color) = (1, 1, 1, 1)
|
||||
_Layer2Brightness ("Layer Brightness", range(0, 25)) = 1
|
||||
_Layer2Alpha ("Layer Alpha", range(0, 25)) = 1
|
||||
[KeywordEnum(Alpha Blend, Additive, Multiply, Multiply Lighten)] _Layer2Blend ("Layer Blend Mode", Float) = 0
|
||||
[KeywordEnum(UV1, UV2)] _Layer2UV ("Layer 2 UV", Float) = 0
|
||||
[Toggle] _Layer2VertexColor ("Mask With Vertex Color (G)", Float) = 0
|
||||
|
||||
[HeaderGroup(Layer 3)]
|
||||
_Layer3Tex ("Layer Texture", 2D) = "white" {}
|
||||
_Layer3Color ("Layer Color", Color) = (1, 1, 1, 1)
|
||||
_Layer3Brightness ("Layer Brightness", range(0, 25)) = 1
|
||||
_Layer3Alpha ("Layer Alpha", range(0, 25)) = 1
|
||||
[KeywordEnum(Alpha Blend, Additive, Multiply, Multiply Lighten)] _Layer3Blend ("Layer Blend Mode", Float) = 0
|
||||
[KeywordEnum(UV1, UV2)] _Layer3UV ("Layer 3 UV", Float) = 0
|
||||
[Toggle] _Layer3VertexColor ("Mask With Vertex Color (B)", Float) = 0
|
||||
|
||||
[HeaderGroup(Transparency Mask)]
|
||||
_TransparencyMaskTex ("Transparency Mask", 2D) = "white" {}
|
||||
_TransparencyMaskAmount ("Mask Amount", range(0, 25)) = 1
|
||||
_TransparencyMaskContrast ("Mask Contrast", range(0, 25)) = 1
|
||||
|
||||
[HeaderGroup(Height Based Colors)]
|
||||
[Toggle(HEIGHT_COLORS)] _HeightColors ("Enable Height Based Colors", Float) = 0
|
||||
_HeightColorsColor ("Color", Color) = (1, 1, 1, 1)
|
||||
_HeightColorsAlpha ("Alpha", range(0, 25)) = 1
|
||||
_HeightColorsHeight ("Height", range(-100, 100)) = 0
|
||||
_HeightColorsEdgeThickness ("Edge Thickness", range(0.001, 100)) = 1
|
||||
_HeightColorsThickness ("Thickness", range(0, 100)) = 0
|
||||
[Enum(World, 0, Local, 1)] _HeightColorsSpace ("Coordinate Space", Float) = 0
|
||||
[KeywordEnum(Alpha Blend, Additive, Lit)] _HeightColorsBlend ("Height Colors Blend Mode", Float) = 0
|
||||
_HeightColorsTex ("Height Colors Texture", 2D) = "white" {}
|
||||
|
||||
[HeaderGroup(Shadow Overlay)]
|
||||
_ShadowOverlayTex ("Shadow Overlay Tex", 2D) = "white" {}
|
||||
_ShadowOverlayBrightness ("Shadow Brightness", range(0, 2)) = 1
|
||||
_ShadowOverlaySpeedU ("Shadow Speed U", range(-5, 5)) = 0.1
|
||||
_ShadowOverlaySpeedV ("Shadow Speed V", range(-5, 5)) = 0.03
|
||||
_ShadowOverlaySwayAmount ("Shadow Sway Amount", range(0, 0.01)) = 0.01
|
||||
[KeywordEnum(Scroll, Sway)] _ShadowOverlayAnimation ("Animation Type", Float) = 0
|
||||
|
||||
[HeaderGroup(Plant Sway)]
|
||||
[Toggle(PLANT_SWAY)] _Plant ("Enable Plant Sway", Float) = 0
|
||||
_PlantSwayAmount ("Sway Amount", range(0, 10)) = 0.15
|
||||
_PlantSwaySpeed ("Sway Speed", range(0, 10)) = 1
|
||||
_PlantBaseHeight ("Base Height", range(-100, 100)) = 0
|
||||
_PlantPhaseVariation ("Phase Variation", range(0, 100)) = 0.3
|
||||
[KeywordEnum(Plant, Leaf, Vertex Color Alpha)] _PlantType ("Plant Type", Float) = 0
|
||||
[Toggle(PLANT_SWAY_LOCAL)] _PlantLocal ("Use Local Space", Float) = 0
|
||||
|
||||
[HeaderGroup(Outline)]
|
||||
[Toggle(OUTLINE)] _Outline ("Enable Outline", Float) = 0
|
||||
_OutlineWidth ("Outline Width", range(0, 0.1)) = 0.002
|
||||
[Toggle(OUTLINE_WIDTH_INDEPENDENT)] _OutlineWidthIndependent ("Outline Width Camera-Independent", Float) = 0
|
||||
_OutlineColor ("Outline Color", Color) = (0, 0, 0, 1)
|
||||
_OutlineZPos ("Outline Z Offset", Range(-0.1, 1)) = 0
|
||||
[Enum(Show, 8, Hide, 6)] _OutlineComp ("Interior Outlines", Float) = 8
|
||||
_OutlineGroup ("Outline Group", Float) = 0
|
||||
[HideInInspector] _OutlinePass ("Outline Pass", Float) = 0
|
||||
|
||||
[HeaderGroup(Anime)]
|
||||
[Toggle(ANIME)] _Anime ("Enable Anime", Float) = 0
|
||||
[HDR] _AnimeColor1 ("Color 1", Color) = (1, 1, 1, 1)
|
||||
_AnimeThreshold1 ("Luminance Threshold 1", range(0, 3)) = 0.45
|
||||
[HDR] _AnimeColor2 ("Color 2", Color) = (1.35, 1.35, 1.35, 1)
|
||||
_AnimeThreshold2 ("Luminance Threshold 2", range(0, 3)) = 0.85
|
||||
[HDR] _AnimeColor3 ("Color 3", Color) = (2, 2, 2, 1)
|
||||
_AnimeSoftness ("Softness", range(0, 0.25)) = 0.01
|
||||
|
||||
[HeaderGroup(Camera Fade)]
|
||||
_CameraFadeStart ("Fade Start Distance", range(0, 25)) = 0
|
||||
_CameraFadeEnd ("Fade End Distance", range(0, 25)) = 0
|
||||
[Toggle] _CameraFadeInvert ("Invert", Float) = 0
|
||||
|
||||
[HeaderGroup(UV Tile Discard)]
|
||||
[Toggle(UVTILE)] _UVTile ("Enable UV Tile Discard", Float) = 0
|
||||
[Enum(UV0, 1, UV1, 2, UV2, 3, UV3, 4)] _UVTileDiscardUV ("Discard UV", Float) = 1
|
||||
[Toggle] _UVTileV3U0 ("v = 3", Float) = 0
|
||||
[Toggle] _UVTileV3U1 ("", Float) = 0
|
||||
[Toggle] _UVTileV3U2 ("", Float) = 0
|
||||
[Toggle] _UVTileV3U3 ("", Float) = 0
|
||||
[Toggle] _UVTileV2U0 ("v = 2", Float) = 0
|
||||
[Toggle] _UVTileV2U1 ("", Float) = 0
|
||||
[Toggle] _UVTileV2U2 ("", Float) = 0
|
||||
[Toggle] _UVTileV2U3 ("", Float) = 0
|
||||
[Toggle] _UVTileV1U0 ("v = 1", Float) = 0
|
||||
[Toggle] _UVTileV1U1 ("", Float) = 0
|
||||
[Toggle] _UVTileV1U2 ("", Float) = 0
|
||||
[Toggle] _UVTileV1U3 ("", Float) = 0
|
||||
[Toggle] _UVTileV0U0 ("v = 0", Float) = 0
|
||||
[Toggle] _UVTileV0U1 ("", Float) = 0
|
||||
[Toggle] _UVTileV0U2 ("", Float) = 0
|
||||
[Toggle] _UVTileV0U3 ("", Float) = 0
|
||||
|
||||
[HeaderGroup(Environment And Shadows)]
|
||||
_AmbientBrightness ("Ambient Brightness", range(0, 25)) = 1
|
||||
[Toggle(FOG)] _Fog ("Enable Fog", Float) = 1
|
||||
|
||||
[Header(Shadows)]
|
||||
[Toggle(SHADOWS_ENABLED)] _ShadowsEnabled ("Enable Shadows", Float) = 1
|
||||
[HDR] _ShadowColor ("Shadow Color", Color) = (0.3, 0.3, 0.3, 1)
|
||||
|
||||
[HeaderGroup(Culling And Blending)]
|
||||
[Enum(Opaque, 0, Transparent, 1, Transparent Additive, 2, Transparent Additive Alpha, 3, Opaque Cutout, 4)] _Preset ("Culling And Blend Preset", Float) = 0
|
||||
|
||||
[Header(Culling)]
|
||||
[Enum(UnityEngine.Rendering.CullMode)] _Cull ("Culling", Float) = 2 // Back
|
||||
[Enum(Off, 0, On, 1)] _ZWrite ("Z Write", Float) = 1.0 // On
|
||||
[Enum(UnityEngine.Rendering.CompareFunction)] _ZTest ("Z Test", Float) = 4 // LessEqual
|
||||
_ZOffset ("Depth Offset", range(-5, 5)) = 0
|
||||
[Toggle(CUTOUT)] _Cutout ("Cutout Transparency", Float) = 0
|
||||
_CutoutCutoff ("Cutoff", range(0, 1)) = 0.5
|
||||
|
||||
[Header(Blending)]
|
||||
[Enum(UnityEngine.Rendering.BlendMode)] _SourceBlend ("Source Blend", Float) = 1 // One
|
||||
[Enum(UnityEngine.Rendering.BlendMode)] _DestBlend ("Dest Blend", Float) = 0 // Zero
|
||||
[Enum(UnityEngine.Rendering.BlendOp)] _BlendOp ("Blend Mode", Float) = 0 // Add
|
||||
|
||||
[HeaderGroup(Rendering)]
|
||||
[Toggle(FLAT)] _Flat ("Enable Flat Shading", Float) = 0
|
||||
}
|
||||
|
||||
Subshader {
|
||||
Name "Normal Shader"
|
||||
|
||||
Pass {
|
||||
Name "ForwardBase"
|
||||
Tags { "LightMode" = "ForwardBase" }
|
||||
Cull [_Cull]
|
||||
ZWrite [_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
Blend [_SourceBlend][_DestBlend]
|
||||
BlendOp [_BlendOp]
|
||||
|
||||
Stencil {
|
||||
Ref [_OutlineGroup]
|
||||
Pass [_OutlinePass]
|
||||
}
|
||||
|
||||
CGPROGRAM
|
||||
#include "UnityCG.cginc"
|
||||
#include "UnityLightingCommon.cginc"
|
||||
#include "AutoLight.cginc"
|
||||
#include "OmniShadeCore.cginc"
|
||||
#pragma target 3.5
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_fog
|
||||
#pragma multi_compile_instancing
|
||||
#pragma multi_compile _ VERTEXLIGHT_ON
|
||||
#pragma multi_compile _ LIGHTMAP_ON
|
||||
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
|
||||
#pragma multi_compile _ SHADOWS_SCREEN
|
||||
#pragma multi_compile _ SHADOWS_SHADOWMASK
|
||||
#pragma shader_feature BASE_CONTRAST
|
||||
#pragma shader_feature BASE_SATURATION
|
||||
#pragma shader_feature DIFFUSE
|
||||
#pragma shader_feature DIFFUSE_PER_PIXEL
|
||||
#pragma shader_feature MIXED_LIGHTING
|
||||
#pragma shader_feature SPECULAR
|
||||
#pragma shader_feature SPECULAR_MAP
|
||||
#pragma shader_feature _SPECULARUV_UV1 _SPECULARUV_UV2
|
||||
#pragma shader_feature SPECULAR_HAIR
|
||||
#pragma shader_feature RIM
|
||||
#pragma shader_feature _RIMBLEND_ALPHA_BLEND _RIMBLEND_ADDITIVE _RIMBLEND_MULTIPLY _RIMBLEND_MULTIPLY_LIGHTEN _RIMBLEND_TRANSPARENCY
|
||||
#pragma shader_feature RIM_DIRECTION
|
||||
#pragma shader_feature REFLECTION
|
||||
#pragma shader_feature REFLECTION_TEX
|
||||
#pragma shader_feature REFLECTION_RIM
|
||||
#pragma shader_feature REFLECTION_SPECULAR
|
||||
#pragma shader_feature NORMAL_MAP
|
||||
#pragma shader_feature NORMAL_MAP2
|
||||
#pragma shader_feature _NORMALUV_UV1 _NORMALUV_UV2
|
||||
#pragma shader_feature _NORMALUV2_UV1 _NORMALUV2_UV2
|
||||
#pragma shader_feature LIGHT_MAP
|
||||
#pragma shader_feature _LIGHTMAPUV_UV1 _LIGHTMAPUV_UV2
|
||||
#pragma shader_feature EMISSIVE_MAP
|
||||
#pragma shader_feature MATCAP
|
||||
#pragma shader_feature MATCAP_CONTRAST
|
||||
#pragma shader_feature _MATCAPBLEND_MULTIPLY _MATCAPBLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature MATCAP_PERSPECTIVE
|
||||
#pragma shader_feature MATCAP_STATIC
|
||||
#pragma shader_feature VERTEX_COLORS
|
||||
#pragma shader_feature VERTEX_COLORS_CONTRAST
|
||||
#pragma shader_feature DETAIL
|
||||
#pragma shader_feature DETAIL_CONTRAST
|
||||
#pragma shader_feature _DETAILBLEND_ALPHA_BLEND _DETAILBLEND_ADDITIVE _DETAILBLEND_MULTIPLY _DETAILBLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _DETAILUV_UV1 _DETAILUV_UV2
|
||||
#pragma shader_feature DETAIL_LIGHTING
|
||||
#pragma shader_feature DETAIL_VERTEX_COLORS
|
||||
#pragma shader_feature LAYER1
|
||||
#pragma shader_feature _LAYER1BLEND_ALPHA_BLEND _LAYER1BLEND_ADDITIVE _LAYER1BLEND_MULTIPLY _LAYER1BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER1UV_UV1 _LAYER1UV_UV2
|
||||
#pragma shader_feature LAYER2
|
||||
#pragma shader_feature _LAYER2BLEND_ALPHA_BLEND _LAYER2BLEND_ADDITIVE _LAYER2BLEND_MULTIPLY _LAYER2BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER2UV_UV1 _LAYER2UV_UV2
|
||||
#pragma shader_feature LAYER3
|
||||
#pragma shader_feature _LAYER3BLEND_ALPHA_BLEND _LAYER3BLEND_ADDITIVE _LAYER3BLEND_MULTIPLY _LAYER3BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER3UV_UV1 _LAYER3UV_UV2
|
||||
#pragma shader_feature TRANSPARENCY_MASK
|
||||
#pragma shader_feature TRANSPARENCY_MASK_CONTRAST
|
||||
#pragma shader_feature HEIGHT_COLORS
|
||||
#pragma shader_feature _HEIGHTCOLORSBLEND_ALPHA_BLEND _HEIGHTCOLORSBLEND_ADDITIVE _HEIGHTCOLORSBLEND_LIT
|
||||
#pragma shader_feature HEIGHT_COLORS_TEX
|
||||
#pragma shader_feature SHADOW_OVERLAY
|
||||
#pragma shader_feature _SHADOWOVERLAYANIMATION_SCROLL _SHADOWOVERLAYANIMATION_SWAY
|
||||
#pragma shader_feature PLANT_SWAY
|
||||
#pragma shader_feature PLANT_SWAY_LOCAL
|
||||
#pragma shader_feature _PLANTTYPE_PLANT _PLANTTYPE_LEAF _PLANTTYPE_VERTEX_COLOR_ALPHA
|
||||
#pragma shader_feature ANIME
|
||||
#pragma shader_feature ANIME_SOFT
|
||||
#pragma shader_feature CAMERA_FADE
|
||||
#pragma shader_feature UVTILE
|
||||
#pragma shader_feature AMBIENT
|
||||
#pragma shader_feature FOG
|
||||
#pragma shader_feature SHADOWS_ENABLED
|
||||
#pragma shader_feature ZOFFSET
|
||||
#pragma shader_feature CUTOUT
|
||||
#pragma shader_feature FLAT
|
||||
ENDCG
|
||||
}
|
||||
|
||||
Pass {
|
||||
Name "Outline"
|
||||
Tags { "LightMode" = "Always" }
|
||||
Cull Front
|
||||
Blend One Zero
|
||||
|
||||
Stencil {
|
||||
Ref [_OutlineGroup]
|
||||
Comp [_OutlineComp]
|
||||
}
|
||||
|
||||
CGPROGRAM
|
||||
#define OUTLINE_PASS 1
|
||||
#include "UnityCG.cginc"
|
||||
#include "OmniShadeCore.cginc"
|
||||
#pragma target 3.5
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_instancing
|
||||
#pragma shader_feature TRANSPARENCY_MASK
|
||||
#pragma shader_feature TRANSPARENCY_MASK_CONTRAST
|
||||
#pragma shader_feature PLANT_SWAY
|
||||
#pragma shader_feature PLANT_SWAY_LOCAL
|
||||
#pragma shader_feature _PLANTTYPE_PLANT _PLANTTYPE_LEAF _PLANTTYPE_VERTEX_COLOR_ALPHA
|
||||
#pragma shader_feature OUTLINE
|
||||
#pragma shader_feature OUTLINE_WIDTH_INDEPENDENT
|
||||
#pragma shader_feature OUTLINE_PASS_DISABLED
|
||||
#pragma shader_feature CAMERA_FADE
|
||||
#pragma shader_feature UVTILE
|
||||
#pragma shader_feature ZOFFSET
|
||||
#pragma shader_feature CUTOUT
|
||||
ENDCG
|
||||
}
|
||||
|
||||
Pass {
|
||||
Name "ShadowCaster"
|
||||
Tags { "LightMode" = "ShadowCaster" }
|
||||
Cull [_Cull]
|
||||
ZWrite [_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
Blend [_SourceBlend][_DestBlend]
|
||||
BlendOp [_BlendOp]
|
||||
|
||||
CGPROGRAM
|
||||
#define SHADOW_CASTER 1
|
||||
#include "UnityCG.cginc"
|
||||
#include "OmniShadeCore.cginc"
|
||||
#pragma target 3.5
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_instancing
|
||||
#pragma shader_feature TRANSPARENCY_MASK
|
||||
#pragma shader_feature TRANSPARENCY_MASK_CONTRAST
|
||||
#pragma shader_feature PLANT_SWAY
|
||||
#pragma shader_feature PLANT_SWAY_LOCAL
|
||||
#pragma shader_feature _PLANTTYPE_PLANT _PLANTTYPE_LEAF _PLANTTYPE_VERTEX_COLOR_ALPHA
|
||||
#pragma shader_feature UVTILE
|
||||
#pragma shader_feature CUTOUT
|
||||
ENDCG
|
||||
}
|
||||
|
||||
Pass {
|
||||
Name "Meta"
|
||||
Tags { "LightMode" = "Meta" }
|
||||
Cull Off
|
||||
ZWrite [_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
Blend [_SourceBlend][_DestBlend]
|
||||
BlendOp [_BlendOp]
|
||||
|
||||
CGPROGRAM
|
||||
#define META 1
|
||||
#include "UnityCG.cginc"
|
||||
#include "UnityMetaPass.cginc"
|
||||
#include "OmniShadeCore.cginc"
|
||||
#pragma target 3.5
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_instancing
|
||||
#pragma shader_feature BASE_CONTRAST
|
||||
#pragma shader_feature EMISSIVE_MAP
|
||||
#pragma shader_feature MATCAP
|
||||
#pragma shader_feature MATCAP_CONTRAST
|
||||
#pragma shader_feature _MATCAPBLEND_MULTIPLY _MATCAPBLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature VERTEX_COLORS
|
||||
#pragma shader_feature VERTEX_COLORS_CONTRAST
|
||||
#pragma shader_feature DETAIL
|
||||
#pragma shader_feature DETAIL_CONTRAST
|
||||
#pragma shader_feature _DETAILBLEND_ALPHA_BLEND _DETAILBLEND_ADDITIVE _DETAILBLEND_MULTIPLY _DETAILBLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _DETAILUV_UV1 _DETAILUV_UV2
|
||||
#pragma shader_feature DETAIL_LIGHTING
|
||||
#pragma shader_feature DETAIL_VERTEX_COLORS
|
||||
#pragma shader_feature LAYER1
|
||||
#pragma shader_feature _LAYER1BLEND_ALPHA_BLEND _LAYER1BLEND_ADDITIVE _LAYER1BLEND_MULTIPLY _LAYER1BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER1UV_UV1 _LAYER1UV_UV2
|
||||
#pragma shader_feature LAYER2
|
||||
#pragma shader_feature _LAYER2BLEND_ALPHA_BLEND _LAYER2BLEND_ADDITIVE _LAYER2BLEND_MULTIPLY _LAYER2BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER2UV_UV1 _LAYER2UV_UV2
|
||||
#pragma shader_feature LAYER3
|
||||
#pragma shader_feature _LAYER3BLEND_ALPHA_BLEND _LAYER3BLEND_ADDITIVE _LAYER3BLEND_MULTIPLY _LAYER3BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER3UV_UV1 _LAYER3UV_UV2
|
||||
#pragma shader_feature TRANSPARENCY_MASK
|
||||
#pragma shader_feature TRANSPARENCY_MASK_CONTRAST
|
||||
#pragma shader_feature HEIGHT_COLORS
|
||||
#pragma shader_feature _HEIGHTCOLORSBLEND_ALPHA_BLEND _HEIGHTCOLORSBLEND_ADDITIVE _HEIGHTCOLORSBLEND_LIT
|
||||
#pragma shader_feature HEIGHT_COLORS_TEX
|
||||
#pragma shader_feature UVTILE
|
||||
#pragma shader_feature CUTOUT
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
|
||||
Subshader {
|
||||
Name "Fallback Shader"
|
||||
|
||||
Pass {
|
||||
Name "Fallback"
|
||||
Tags { "LightMode" = "ForwardBase" }
|
||||
Cull [_Cull]
|
||||
ZWrite [_ZWrite]
|
||||
ZTest [_ZTest]
|
||||
Blend [_SourceBlend][_DestBlend]
|
||||
BlendOp [_BlendOp]
|
||||
|
||||
CGPROGRAM
|
||||
#define FALLBACK_PASS 1
|
||||
#include "UnityCG.cginc"
|
||||
#include "UnityLightingCommon.cginc"
|
||||
#include "AutoLight.cginc"
|
||||
#include "OmniShadeCore.cginc"
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_fog
|
||||
#pragma multi_compile _ LIGHTMAP_ON
|
||||
#pragma shader_feature BASE_SATURATION
|
||||
#pragma shader_feature DIFFUSE
|
||||
#pragma shader_feature MIXED_LIGHTING
|
||||
#pragma shader_feature SPECULAR
|
||||
#pragma shader_feature RIM
|
||||
#pragma shader_feature _RIMBLEND_ALPHA_BLEND _RIMBLEND_ADDITIVE _RIMBLEND_MULTIPLY _RIMBLEND_MULTIPLY_LIGHTEN _RIMBLEND_TRANSPARENCY
|
||||
#pragma shader_feature LIGHT_MAP
|
||||
#pragma shader_feature _LIGHTMAPUV_UV1 _LIGHTMAPUV_UV2
|
||||
#pragma shader_feature MATCAP
|
||||
#pragma shader_feature _MATCAPBLEND_MULTIPLY _MATCAPBLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature MATCAP_STATIC
|
||||
#pragma shader_feature VERTEX_COLORS
|
||||
#pragma shader_feature LAYER1
|
||||
#pragma shader_feature _LAYER1BLEND_ALPHA_BLEND _LAYER1BLEND_ADDITIVE _LAYER1BLEND_MULTIPLY _LAYER1BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER1UV_UV1 _LAYER1UV_UV2
|
||||
#pragma shader_feature LAYER2
|
||||
#pragma shader_feature _LAYER2BLEND_ALPHA_BLEND _LAYER2BLEND_ADDITIVE _LAYER2BLEND_MULTIPLY _LAYER2BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER2UV_UV1 _LAYER2UV_UV2
|
||||
#pragma shader_feature LAYER3
|
||||
#pragma shader_feature _LAYER3BLEND_ALPHA_BLEND _LAYER3BLEND_ADDITIVE _LAYER3BLEND_MULTIPLY _LAYER3BLEND_MULTIPLY_LIGHTEN
|
||||
#pragma shader_feature _LAYER3UV_UV1 _LAYER3UV_UV2
|
||||
#pragma shader_feature TRANSPARENCY_MASK
|
||||
#pragma shader_feature ANIME
|
||||
#pragma shader_feature UVTILE
|
||||
#pragma shader_feature AMBIENT
|
||||
#pragma shader_feature FOG
|
||||
#pragma shader_feature ZOFFSET
|
||||
#pragma shader_feature CUTOUT
|
||||
#pragma shader_feature FLAT
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
|
||||
Fallback "Diffuse"
|
||||
CustomEditor "OmniShadeGUI"
|
||||
// float4 color : COLOR; This line is for Polybrush support
|
||||
}
|
||||
17
Assets/OmniShade/Shaders/OmniShade.shader.meta
Normal file
17
Assets/OmniShade/Shaders/OmniShade.shader.meta
Normal file
@@ -0,0 +1,17 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 124e8c1d64ac24c13aa406f05ca2d222
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
preprocessorOverride: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 215111
|
||||
packageName: OmniShade - Mobile Optimized Shader
|
||||
packageVersion: 1.9.5
|
||||
assetPath: Assets/OmniShade/Shaders/OmniShade.shader
|
||||
uploadId: 825160
|
||||
1220
Assets/OmniShade/Shaders/OmniShadeCore.cginc
Normal file
1220
Assets/OmniShade/Shaders/OmniShadeCore.cginc
Normal file
File diff suppressed because it is too large
Load Diff
17
Assets/OmniShade/Shaders/OmniShadeCore.cginc.meta
Normal file
17
Assets/OmniShade/Shaders/OmniShadeCore.cginc.meta
Normal file
@@ -0,0 +1,17 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 81c9824bf6e9543afb028b75f8d514c1
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
preprocessorOverride: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 215111
|
||||
packageName: OmniShade - Mobile Optimized Shader
|
||||
packageVersion: 1.9.5
|
||||
assetPath: Assets/OmniShade/Shaders/OmniShadeCore.cginc
|
||||
uploadId: 825160
|
||||
283
Assets/OmniShade/Shaders/OmniShadeURP.cginc
Normal file
283
Assets/OmniShade/Shaders/OmniShadeURP.cginc
Normal file
@@ -0,0 +1,283 @@
|
||||
//------------------------------------
|
||||
// OmniShade
|
||||
// Copyright© 2025 OmniShade
|
||||
//------------------------------------
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Mapping from Built-In to URP
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
#if URP
|
||||
// Vertex input structure
|
||||
struct appdata_full {
|
||||
float4 vertex : POSITION;
|
||||
float4 tangent : TANGENT;
|
||||
float3 normal : NORMAL;
|
||||
float4 texcoord : TEXCOORD0;
|
||||
float4 texcoord1 : TEXCOORD1;
|
||||
float4 texcoord2 : TEXCOORD2;
|
||||
float4 texcoord3 : TEXCOORD3;
|
||||
half4 color : COLOR;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
// Function renames
|
||||
#define _LightColor0 (_MainLightColor * unity_ProbesOcclusion.r)
|
||||
#define _WorldSpaceLightPos0 _MainLightPosition
|
||||
#define UnityObjectToClipPos TransformObjectToHClip
|
||||
#define UnityObjectToWorldNormal TransformObjectToWorldNormal
|
||||
#define UnityObjectToWorldDir TransformObjectToWorldDir
|
||||
#define ShadeSH9(x) SampleSH(x.rgb)
|
||||
#define UnityMetaInput MetaInput
|
||||
#define UnityMetaVertexPosition MetaVertexPosition
|
||||
#define UnityMetaFragment MetaFragment
|
||||
#ifndef unity_LightData
|
||||
#define unity_LightData unity_LightData.rgb
|
||||
#endif
|
||||
#define unity_ShadowColor _SubtractiveShadowColor
|
||||
|
||||
// Macro definitions
|
||||
#define UNITY_PI 3.14159265359f
|
||||
#define UNITY_INITIALIZE_OUTPUT ZERO_INITIALIZE
|
||||
#define UNITY_SAMPLE_TEX2D_SAMPLER(tex, samplertex, coord) tex.Sample (sampler##samplertex,coord)
|
||||
#define UNITY_TRANSFER_FOG(o, outpos) o.fogCoord = ComputeFogFactor(outpos.z);
|
||||
#define UNITY_APPLY_FOG(coord, col) col = MixFog(col, coord);
|
||||
#define UNITY_LIGHT_ATTENUATION(atten, i, pos_world) half atten = UnityLightAttenuation(pos_world);
|
||||
#define TRANSFER_SHADOW_CAST(o, v) o.pos = GetShadowPositionClip(v.vertex.xyz, v.normal);
|
||||
#define UNITY_LIGHTDATA
|
||||
#if !defined(LIGHT_LOOP_BEGIN)
|
||||
#define LIGHT_LOOP_BEGIN(lightCount) \
|
||||
for (uint lightIndex = 0u; lightIndex < lightCount; ++lightIndex) {
|
||||
#define LIGHT_LOOP_END }
|
||||
#endif
|
||||
|
||||
// Functions missing from built-in
|
||||
float3 UnityObjectToViewPos(float3 pos) {
|
||||
return TransformWorldToView(TransformObjectToWorld(pos));
|
||||
}
|
||||
|
||||
float3 WorldSpaceViewDir(float4 vertex) {
|
||||
float3 worldPos = TransformObjectToWorld(vertex.xyz);
|
||||
float3 camPos = float3(
|
||||
unity_CameraToWorld[0][3],
|
||||
unity_CameraToWorld[1][3],
|
||||
unity_CameraToWorld[2][3]
|
||||
);
|
||||
return camPos.xyz - worldPos;
|
||||
}
|
||||
|
||||
half3 DecodeHDR (half4 data, half4 decodeInstructions) {
|
||||
half alpha = decodeInstructions.w * (data.a - 1.0) + 1.0;
|
||||
#if defined(UNITY_COLORSPACE_GAMMA)
|
||||
return (decodeInstructions.x * alpha) * data.rgb;
|
||||
#else
|
||||
#if defined(UNITY_USE_NATIVE_HDR)
|
||||
return decodeInstructions.x * data.rgb;
|
||||
#else
|
||||
return (decodeInstructions.x * pow(alpha, decodeInstructions.y)) * data.rgb;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
half3 DecodeDirectionalLightmap (half3 color, half4 dirTex, half3 normalWorld) {
|
||||
half halfLambert = dot(normalWorld, dirTex.xyz - 0.5) + 0.5;
|
||||
return color * halfLambert / max(1e-4h, dirTex.w);
|
||||
}
|
||||
|
||||
#if LIGHTMAP_ON
|
||||
half3 SampleUnityLightmap(float2 uv) {
|
||||
return SampleSingleLightmap(
|
||||
TEXTURE2D_ARGS(unity_Lightmap, samplerunity_Lightmap),
|
||||
uv,
|
||||
float4(1.0, 1.0, 0.0, 0.0),
|
||||
#if defined(UNITY_LIGHTMAP_FULL_HDR)
|
||||
false,
|
||||
#else
|
||||
true,
|
||||
#endif
|
||||
float4(LIGHTMAP_HDR_MULTIPLIER, LIGHTMAP_HDR_EXPONENT, 0.0, 0.0)
|
||||
);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Custom functions
|
||||
#if SHADOWS_ENABLED
|
||||
half UnityLightAttenuation(float3 pos_world) {
|
||||
VertexPositionInputs vi = (VertexPositionInputs)0;
|
||||
vi.positionWS = pos_world;
|
||||
float4 shadowCoord = GetShadowCoord(vi);
|
||||
half atten = MainLightRealtimeShadow(shadowCoord);
|
||||
#if UNITY_VERSION >= 202102
|
||||
half shadowFade = GetMainLightShadowFade(pos_world);
|
||||
atten = lerp(atten, 1, shadowFade);
|
||||
#endif
|
||||
return atten;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if SHADOW_CASTER
|
||||
float4 GetShadowPositionClip(float3 vertex, float3 normal) {
|
||||
float3 positionWS = TransformObjectToWorld(vertex);
|
||||
float3 normalWS = TransformObjectToWorldNormal(normal);
|
||||
#if _CASTING_PUNCTUAL_LIGHT_SHADOW
|
||||
float3 lightDirectionWS = normalize(_LightPosition - positionWS);
|
||||
#else
|
||||
float3 lightDirectionWS = _LightDirection;
|
||||
#endif
|
||||
float4 positionCS = TransformWorldToHClip(ApplyShadowBias(positionWS, normalWS, lightDirectionWS));
|
||||
#if UNITY_REVERSED_Z
|
||||
positionCS.z = min(positionCS.z, UNITY_NEAR_CLIP_VALUE);
|
||||
#else
|
||||
positionCS.z = max(positionCS.z, UNITY_NEAR_CLIP_VALUE);
|
||||
#endif
|
||||
return positionCS;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if _ADDITIONAL_LIGHTS
|
||||
half AdditionalLightsShadow(uint lightIndex, half3 pos_world, Light light) {
|
||||
#if SHADOWS_ENABLED
|
||||
#if (USE_FORWARD_PLUS || USE_CLUSTER_LIGHT_LOOP)
|
||||
int perObjectLightIndex = lightIndex;
|
||||
#else
|
||||
int perObjectLightIndex = GetPerObjectLightIndex(lightIndex);
|
||||
#endif
|
||||
#if UNITY_VERSION >= 202102
|
||||
half shadow = AdditionalLightRealtimeShadow(perObjectLightIndex, pos_world, light.direction);
|
||||
shadow = lerp(shadow, 1, GetAdditionalLightShadowFade(pos_world));
|
||||
#else
|
||||
half shadow = AdditionalLightRealtimeShadow(perObjectLightIndex, pos_world);
|
||||
#endif
|
||||
return shadow;
|
||||
#else
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
half3 AdditionalLightsFrag(half3 pos_world, half3 nor_world, half4 pos_clip, half _DiffuseWrap, half _DiffuseBrightness, half _DiffuseContrast, uint meshRenderingLayers, half3 shadowColor) {
|
||||
half3 col_diffuse = 0;
|
||||
#if _ADDITIONAL_LIGHTS
|
||||
uint lightsCount = GetAdditionalLightsCount();
|
||||
#if (USE_FORWARD_PLUS || USE_CLUSTER_LIGHT_LOOP)
|
||||
InputData inputData = (InputData)0;
|
||||
inputData.normalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(pos_clip);
|
||||
inputData.positionWS = pos_world;
|
||||
#endif
|
||||
LIGHT_LOOP_BEGIN(lightsCount)
|
||||
Light light = GetAdditionalLight(lightIndex, pos_world);
|
||||
#if (_LIGHT_LAYERS && UNITY_VERSION >= 202102)
|
||||
if (IsMatchingLightLayer(light.layerMask, meshRenderingLayers))
|
||||
#endif
|
||||
{
|
||||
half ndotl = max(0, dot(light.direction, nor_world));
|
||||
ndotl = max(0, lerp(ndotl, 1, _DiffuseWrap));
|
||||
ndotl = pow(ndotl, _DiffuseContrast) * _DiffuseBrightness;
|
||||
half diff = ndotl;
|
||||
// This line is not supported in vertex shader since it samples a texture
|
||||
// so it is omitted from AdditionalLightsVert()
|
||||
half atten = AdditionalLightsShadow(lightIndex, pos_world, light);
|
||||
half3 col_shadow = lerp(shadowColor, 1, (atten));
|
||||
#if URP && _LIGHT_COOKIES
|
||||
real3 cookieColor = SampleAdditionalLightCookie(lightIndex, pos_world);
|
||||
diff *= cookieColor;
|
||||
#endif
|
||||
col_diffuse += diff * light.color * light.distanceAttenuation * col_shadow;
|
||||
}
|
||||
LIGHT_LOOP_END
|
||||
#endif
|
||||
return col_diffuse;
|
||||
}
|
||||
|
||||
half3 AdditionalLightsVert(half3 pos_world, half3 nor_world, half _DiffuseWrap, half _DiffuseBrightness, half _DiffuseContrast, uint meshRenderingLayers, half3 shadowColor) {
|
||||
half3 col_diffuse = 0;
|
||||
#if _ADDITIONAL_LIGHTS
|
||||
uint lightsCount = GetAdditionalLightsCount();
|
||||
#if (USE_FORWARD_PLUS || USE_CLUSTER_LIGHT_LOOP)
|
||||
InputData inputData = (InputData)0;
|
||||
#endif
|
||||
LIGHT_LOOP_BEGIN(lightsCount)
|
||||
Light light = GetAdditionalLight(lightIndex, pos_world);
|
||||
#if (_LIGHT_LAYERS && UNITY_VERSION >= 202102)
|
||||
if (IsMatchingLightLayer(light.layerMask, meshRenderingLayers))
|
||||
#endif
|
||||
{
|
||||
half ndotl = max(0, dot(light.direction, nor_world));
|
||||
ndotl = max(0, lerp(ndotl, 1, _DiffuseWrap));
|
||||
ndotl = pow(ndotl, _DiffuseContrast) * _DiffuseBrightness;
|
||||
half diff = ndotl;
|
||||
col_diffuse += light.color * light.distanceAttenuation * diff;
|
||||
}
|
||||
LIGHT_LOOP_END
|
||||
#endif
|
||||
return col_diffuse;
|
||||
}
|
||||
|
||||
uint GetMeshRenderingLightLayerCustom() {
|
||||
#if (_LIGHT_LAYERS && UNITY_VERSION >= 202203)
|
||||
return asuint(unity_RenderingLayer.x);
|
||||
#elif (_LIGHT_LAYERS && UNITY_VERSION >= 202102)
|
||||
return (asuint(unity_RenderingLayer.x) & RENDERING_LIGHT_LAYERS_MASK) >> RENDERING_LIGHT_LAYERS_MASK_SHIFT;
|
||||
#else
|
||||
return 0xFF;
|
||||
#endif
|
||||
}
|
||||
|
||||
#else
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Buit-In helper functions
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
#define TransformObjectToWorld(pos) mul(unity_ObjectToWorld, float4(pos, 1))
|
||||
#define UNITY_LIGHTDATA half3 unity_LightData = half3(0, 0, dot(_WorldSpaceLightPos0, 1) != 0);
|
||||
#define TRANSFER_SHADOW_CAST(o, v) o.pos = UnityClipSpaceShadowCasterPos(v.vertex.xyz, v.normal); o.pos = UnityApplyLinearShadowBias(o.pos);
|
||||
|
||||
float4x4 GetObjectToWorldMatrix() {
|
||||
return unity_ObjectToWorld;
|
||||
}
|
||||
|
||||
float4x4 GetWorldToObjectMatrix() {
|
||||
return unity_WorldToObject;
|
||||
}
|
||||
|
||||
half3 SampleUnityLightmap(float2 uv) {
|
||||
half4 color = UNITY_SAMPLE_TEX2D(unity_Lightmap, uv);
|
||||
return DecodeLightmap(color);
|
||||
}
|
||||
|
||||
half3 AdditionalLightsFrag(half3 pos_world, half3 nor_world, half4 pos_clip, half _DiffuseWrap, half _DiffuseBrightness, half _DiffuseContrast, uint meshRenderingLayers, half3 shadowColor) {
|
||||
half3 col_diffuse = 0;
|
||||
float4 lightPosX = unity_4LightPosX0;
|
||||
float4 lightPosY = unity_4LightPosY0;
|
||||
float4 lightPosZ = unity_4LightPosZ0;
|
||||
float4 lightAtten = unity_4LightAtten0;
|
||||
float4 toLightX = lightPosX - pos_world.x;
|
||||
float4 toLightY = lightPosY - pos_world.y;
|
||||
float4 toLightZ = lightPosZ - pos_world.z;
|
||||
float4 lengthSq = toLightX * toLightX;
|
||||
lengthSq += toLightY * toLightY;
|
||||
lengthSq += toLightZ * toLightZ;
|
||||
lengthSq = max(lengthSq, 0.000001);
|
||||
half4 ndotl = toLightX * nor_world.x;
|
||||
ndotl += toLightY * nor_world.y;
|
||||
ndotl += toLightZ * nor_world.z;
|
||||
ndotl = max(0, ndotl * rsqrt(lengthSq));
|
||||
ndotl = max(0, lerp(ndotl, 1, _DiffuseWrap));
|
||||
ndotl = pow(ndotl, _DiffuseContrast) * _DiffuseBrightness;
|
||||
float4 pointAtten = 1.0 / (1.0 + lengthSq * lightAtten);
|
||||
half4 diff = ndotl * pointAtten;
|
||||
col_diffuse += unity_LightColor[0].rgb * diff.x;
|
||||
col_diffuse += unity_LightColor[1].rgb * diff.y;
|
||||
col_diffuse += unity_LightColor[2].rgb * diff.z;
|
||||
col_diffuse += unity_LightColor[3].rgb * diff.w;
|
||||
return col_diffuse;
|
||||
}
|
||||
|
||||
half3 AdditionalLightsVert(half3 pos_world, half3 nor_world, half _DiffuseWrap, half _DiffuseBrightness, half _DiffuseContrast, uint meshRenderingLayers, half3 shadowColor) {
|
||||
return AdditionalLightsFrag(pos_world, nor_world, 0, _DiffuseWrap, _DiffuseBrightness, _DiffuseContrast, meshRenderingLayers, shadowColor);
|
||||
}
|
||||
|
||||
uint GetMeshRenderingLightLayerCustom() {
|
||||
return 0xFF;
|
||||
}
|
||||
|
||||
#endif
|
||||
16
Assets/OmniShade/Shaders/OmniShadeURP.cginc.meta
Normal file
16
Assets/OmniShade/Shaders/OmniShadeURP.cginc.meta
Normal file
@@ -0,0 +1,16 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 48eacffeb81a245539e6a2a897e7ab2d
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 215111
|
||||
packageName: OmniShade - Mobile Optimized Shader
|
||||
packageVersion: 1.9.5
|
||||
assetPath: Assets/OmniShade/Shaders/OmniShadeURP.cginc
|
||||
uploadId: 825160
|
||||
8
Assets/OmniShade/Shaders/ShaderLibrary.meta
Normal file
8
Assets/OmniShade/Shaders/ShaderLibrary.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0db730e01157b499cba1b77da45ece28
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,22 @@
|
||||
#ifndef UNITY_FOVEATED_RENDERING_KEYWORDS_INCLUDED
|
||||
#define UNITY_FOVEATED_RENDERING_KEYWORDS_INCLUDED
|
||||
|
||||
#if (!defined(UNITY_COMPILER_DXC) && (defined(UNITY_PLATFORM_OSX) || defined(UNITY_PLATFORM_IOS))) || defined(SHADER_API_PS5)
|
||||
|
||||
#if defined(SHADER_API_PS5) || defined(SHADER_API_METAL)
|
||||
|
||||
#define SUPPORTS_FOVEATED_RENDERING_NON_UNIFORM_RASTER 1
|
||||
|
||||
// On Metal Foveated Rendering is currently not supported with DXC
|
||||
#pragma warning (disable : 3568) // unknown pragma ignored
|
||||
|
||||
#pragma never_use_dxc metal
|
||||
#pragma dynamic_branch _ _FOVEATED_RENDERING_NON_UNIFORM_RASTER
|
||||
|
||||
#pragma warning (default : 3568) // restore unknown pragma ignored
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif // UNITY_FOVEATED_RENDERING_KEYWORDS_INCLUDED
|
||||
@@ -0,0 +1,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: beb2e9f6e4f08434ab3fda0587ef07d6
|
||||
ShaderIncludeImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 215111
|
||||
packageName: OmniShade - Mobile Optimized Shader
|
||||
packageVersion: 1.9.5
|
||||
assetPath: Assets/OmniShade/Shaders/ShaderLibrary/FoveatedRenderingKeywords.hlsl
|
||||
uploadId: 825160
|
||||
Reference in New Issue
Block a user