A game about forced loneliness, made by TACStudios
1#ifndef BUILTIN_INPUT_INCLUDED
2#define BUILTIN_INPUT_INCLUDED
3
4#define MAX_VISIBLE_LIGHTS_UBO 32
5#define MAX_VISIBLE_LIGHTS_SSBO 256
6
7// Keep in sync with RenderingUtils.useStructuredBuffer
8#define USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA 0
9
10#include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderTypes.cs.hlsl"
11#include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Deprecated.hlsl"
12
13#if defined(SHADER_API_MOBILE) && defined(SHADER_API_GLES30)
14 #define MAX_VISIBLE_LIGHTS 16
15#elif defined(SHADER_API_MOBILE) || (defined(SHADER_API_GLCORE) && !defined(SHADER_API_SWITCH)) || defined(SHADER_API_GLES3) || defined(SHADER_API_WEBGPU) // Workaround because SHADER_API_GLCORE is also defined when SHADER_API_SWITCH is
16 #define MAX_VISIBLE_LIGHTS 32
17#else
18 #define MAX_VISIBLE_LIGHTS 256
19#endif
20
21struct InputData
22{
23 float3 positionWS;
24 half3 normalWS;
25 half3 viewDirectionWS;
26 float4 shadowCoord;
27 half fogCoord;
28 half3 vertexLighting;
29 half3 bakedGI;
30 float2 normalizedScreenSpaceUV;
31 half4 shadowMask;
32};
33
34///////////////////////////////////////////////////////////////////////////////
35// Constant Buffers //
36///////////////////////////////////////////////////////////////////////////////
37
38half4 _GlossyEnvironmentColor;
39half4 _SubtractiveShadowColor;
40
41#define _InvCameraViewProj unity_MatrixInvVP
42float4 _ScaledScreenParams;
43
44float4 _MainLightPosition;
45half4 _MainLightColor;
46half4 _MainLightOcclusionProbes;
47
48// xyz are currently unused
49// w: directLightStrength
50half4 _AmbientOcclusionParam;
51
52half4 _AdditionalLightsCount;
53
54#if USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA
55StructuredBuffer<LightData> _AdditionalLightsBuffer;
56StructuredBuffer<int> _AdditionalLightsIndices;
57#else
58// GLES3 causes a performance regression in some devices when using CBUFFER.
59#ifndef SHADER_API_GLES3
60CBUFFER_START(AdditionalLights)
61#endif
62float4 _AdditionalLightsPosition[MAX_VISIBLE_LIGHTS];
63half4 _AdditionalLightsColor[MAX_VISIBLE_LIGHTS];
64half4 _AdditionalLightsAttenuation[MAX_VISIBLE_LIGHTS];
65half4 _AdditionalLightsSpotDir[MAX_VISIBLE_LIGHTS];
66half4 _AdditionalLightsOcclusionProbes[MAX_VISIBLE_LIGHTS];
67#ifndef SHADER_API_GLES3
68CBUFFER_END
69#endif
70#endif
71
72// Duplicate defined symbols in built-in target
73#ifndef BUILTIN_TARGET_API
74#define UNITY_MATRIX_M unity_ObjectToWorld
75#define UNITY_MATRIX_I_M unity_WorldToObject
76#define UNITY_MATRIX_V unity_MatrixV
77#define UNITY_MATRIX_I_V unity_MatrixInvV
78#define UNITY_MATRIX_P OptimizeProjectionMatrix(glstate_matrix_projection)
79#define UNITY_MATRIX_I_P (float4x4)0
80#define UNITY_MATRIX_VP unity_MatrixVP
81#define UNITY_MATRIX_I_VP (float4x4)0
82#define UNITY_MATRIX_MV mul(UNITY_MATRIX_V, UNITY_MATRIX_M)
83#define UNITY_MATRIX_T_MV transpose(UNITY_MATRIX_MV)
84#define UNITY_MATRIX_IT_MV transpose(mul(UNITY_MATRIX_I_M, UNITY_MATRIX_I_V))
85#define UNITY_MATRIX_MVP mul(UNITY_MATRIX_VP, UNITY_MATRIX_M)
86#define UNITY_PREV_MATRIX_M unity_MatrixPreviousM
87#define UNITY_PREV_MATRIX_I_M unity_MatrixPreviousMI
88#else
89// Not defined already by built-in
90#define UNITY_MATRIX_I_M unity_WorldToObject
91#define UNITY_MATRIX_I_P (float4x4)0
92#define UNITY_MATRIX_I_VP (float4x4)0
93#define UNITY_PREV_MATRIX_M (float4x4)0
94#define UNITY_PREV_MATRIX_I_M (float4x4)0
95#endif
96
97
98// Note: #include order is important here.
99// UnityInput.hlsl must be included before UnityInstancing.hlsl, so constant buffer
100// declarations don't fail because of instancing macros.
101#include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/UnityInput.hlsl"
102#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl"
103#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/SpaceTransforms.hlsl"
104
105#endif