mirror of
https://github.com/DeMuenu/MoonlightVRC.git
synced 2025-12-13 11:33:54 +00:00
Updated all relevant shader files and C# script to use Udon-prefixed light and player variables (e.g., _Udon_LightPositions, _Udon_LightColors, _Udon_PlayerCount) for consistency and to avoid naming conflicts. This change affects variable declarations, macro definitions, and all usages in BlendinShader, LitParticles, Water shaders, and included HLSL files.
25 lines
1.1 KiB
HLSL
25 lines
1.1 KiB
HLSL
#ifndef LightTypeCalculations
|
|
#define LightTypeCalculations(_Udon_LightColors ,LightCounter, i, NdotL, dIntensity, radius, Lightposition) \
|
|
float invSqMul = max(1e-4, _InverseSqareMultiplier); \
|
|
\
|
|
if(_Udon_LightType[LightCounter] == 0) \
|
|
{ \
|
|
contrib = _Udon_LightColors[LightCounter].a / max(1e-4, max(0, max(1, distanceFromLight - radius) * invSqMul) * max(0, max(1, distanceFromLight - radius) * invSqMul)); \
|
|
\
|
|
dIntensity += contrib * NdotL; \
|
|
} \
|
|
else if (_Udon_LightType[LightCounter] == 1) \
|
|
{ \
|
|
float invSq = _Udon_LightColors[LightCounter].a / max(1e-4, (distanceFromLight * invSqMul) * (distanceFromLight * invSqMul)); \
|
|
float threshold = (-1 + _Udon_LightDirections[LightCounter].w / 180); \
|
|
\
|
|
contrib = min(dot(normalize(i.worldPos - Lightposition), -normalize(_Udon_LightDirections[LightCounter].xyz)), 0); \
|
|
contrib= 1 - step(threshold, contrib); \
|
|
\
|
|
contrib = contrib * invSq; \
|
|
dIntensity += contrib * NdotL; \
|
|
} \
|
|
float3 LightColor = _Udon_LightColors[LightCounter].xyz; \
|
|
|
|
|
|
#endif |