2022-01-17 11:26:35 +03:00

154 lines
5.5 KiB
HLSL

//////////////////////////////////////////////////////
// MK Toon Uniform //
// //
// Created by Michael Kremmel //
// www.michaelkremmel.de //
// Copyright © 2021 All rights reserved. //
//////////////////////////////////////////////////////
#ifndef MK_TOON_UNIFORM
#define MK_TOON_UNIFORM
#if defined(MK_URP)
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#elif defined(MK_LWRP)
#include "Packages/com.unity.render-pipelines.lightweight/ShaderLibrary/Core.hlsl"
#else
#include "UnityCG.cginc"
#endif
#include "Pipeline.hlsl"
/////////////////////////////////////////////////////////////////////////////////////////////
// UNIFORM VARIABLES
/////////////////////////////////////////////////////////////////////////////////////////////
// The compiler should optimized the code by stripping away unused uniforms
// This way its also possible to avoid an inconsistent buffer size error and
// use the SRP Batcher, while compile different variants of the shader
// Every PerDraw (builtin engine variables) should accessed via the builtin include files
// Its not clear if a block based setup for the srp batcher is required,
// therefore all uniforms are grouped this way:
//
// fixed | fixed2 | fixed3 | fixed4
// half | half2 | half3 | half4
// float | float2 | float3 | float4
// Sampler2D | Sampler3D
CBUFFER_START(UnityPerMaterial)
uniform autoLP _AlphaCutoff;
uniform autoLP _Metallic;
uniform autoLP _Smoothness;
uniform autoLP _Roughness;
uniform autoLP _Anisotropy;
uniform autoLP _LightTransmissionDistortion;
uniform autoLP _LightBandsScale;
uniform autoLP _LightThreshold;
uniform autoLP _DrawnClampMin;
uniform autoLP _DrawnClampMax;
uniform autoLP _Contrast;
uniform autoLP _Saturation;
uniform autoLP _Brightness;
uniform autoLP _DiffuseSmoothness;
uniform autoLP _DiffuseThresholdOffset;
uniform autoLP _SpecularSmoothness;
uniform autoLP _SpecularThresholdOffset;
uniform autoLP _RimSmoothness;
uniform autoLP _RimThresholdOffset;
uniform autoLP _IridescenceSmoothness;
uniform autoLP _IridescenceThresholdOffset;
uniform autoLP _LightTransmissionSmoothness;
uniform autoLP _LightTransmissionThresholdOffset;
uniform autoLP _RimSize;
uniform autoLP _IridescenceSize;
uniform autoLP _DissolveAmount;
uniform autoLP _DissolveBorderSize;
uniform autoLP _OutlineNoise;
uniform autoLP _DiffuseWrap;
uniform autoLP _DetailMix;
uniform autoLP _RefractionDistortionFade;
uniform autoLP _GoochRampIntensity;
uniform autoLP _VertexAnimationIntensity;
uniform autoLP3 _DetailColor;
uniform autoLP3 _SpecularColor;
uniform autoLP3 _LightTransmissionColor;
uniform autoLP4 _AlbedoColor;
uniform autoLP4 _DissolveBorderColor;
uniform autoLP4 _OutlineColor;
uniform autoLP4 _IridescenceColor;
uniform autoLP4 _RimColor;
uniform autoLP4 _RimBrightColor;
uniform autoLP4 _RimDarkColor;
uniform autoLP4 _GoochDarkColor;
uniform autoLP4 _GoochBrightColor;
uniform autoLP4 _VertexAnimationFrequency;
uniform half _DetailNormalMapIntensity;
uniform half _NormalMapIntensity;
uniform half _Parallax;
uniform half _OcclusionMapIntensity;
uniform half _LightBands;
uniform half _ThresholdMapScale;
uniform half _ArtisticFrequency;
uniform half _DissolveMapScale;
uniform half _DrawnMapScale;
uniform half _SketchMapScale;
uniform half _HatchingMapScale;
uniform half _OutlineSize;
uniform half _SpecularIntensity;
uniform half _LightTransmissionIntensity;
uniform half _RefractionDistortionMapScale;
uniform half _IndexOfRefraction;
uniform half _RefractionDistortion;
uniform half3 _EmissionColor;
uniform float _SoftFadeNearDistance;
uniform float _SoftFadeFarDistance;
uniform float _CameraFadeNearDistance;
uniform float _CameraFadeFarDistance;
uniform float _OutlineFadeMin;
uniform float _OutlineFadeMax;
uniform float4 _AlbedoMap_ST;
uniform float4 _MainTex_ST;
uniform float4 _DetailMap_ST;
CBUFFER_END
UNIFORM_TEXTURE_2D(_AlbedoMap); //1
UNIFORM_TEXTURE_2D(_AlbedoMap1);
UNIFORM_TEXTURE_2D(_AlbedoMap2);
UNIFORM_TEXTURE_2D(_AlbedoMap3);
UNIFORM_TEXTURE_2D(_RefractionDistortionMap); //2
UNIFORM_TEXTURE_2D(_SpecularMap); //3
UNIFORM_TEXTURE_2D(_RoughnessMap); //3
UNIFORM_TEXTURE_2D(_MetallicMap); //3
UNIFORM_TEXTURE_2D(_DetailMap); //4
UNIFORM_TEXTURE_2D(_DetailNormalMap); //5
UNIFORM_TEXTURE_2D(_NormalMap); //6
UNIFORM_TEXTURE_2D(_HeightMap); //7
UNIFORM_TEXTURE_2D(_ThicknessMap); //8
UNIFORM_TEXTURE_2D(_OcclusionMap); //9
UNIFORM_TEXTURE_2D(_ThresholdMap); //10
UNIFORM_TEXTURE_2D(_GoochRamp); //11
UNIFORM_TEXTURE_2D(_DiffuseRamp); //12
UNIFORM_TEXTURE_2D(_SpecularRamp); //13
UNIFORM_TEXTURE_2D(_RimRamp); //14
UNIFORM_TEXTURE_2D(_LightTransmissionRamp); //15
UNIFORM_TEXTURE_2D(_IridescenceRamp); //16
UNIFORM_TEXTURE_2D(_SketchMap); //17
UNIFORM_TEXTURE_2D(_DrawnMap); //17
UNIFORM_TEXTURE_2D(_HatchingBrightMap); //17
UNIFORM_TEXTURE_2D(_HatchingDarkMap); //18
UNIFORM_TEXTURE_2D(_GoochBrightMap); //19
UNIFORM_TEXTURE_2D(_GoochDarkMap); //20
UNIFORM_TEXTURE_2D(_DissolveMap); //21
UNIFORM_TEXTURE_2D(_DissolveBorderRamp); //22
UNIFORM_TEXTURE_2D(_EmissionMap); //23
uniform sampler2D _VertexAnimationMap; //24
//Depth //25
//Refraction //26
uniform sampler2D _OutlineMap; // Only Outline
uniform sampler3D _DitherMaskLOD; // Only Shadows
#endif