Rename shader light variables to Udon-prefixed versions

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.
This commit is contained in:
DeMuenu
2025-09-26 23:13:06 +02:00
parent 7189afee7b
commit b94c52da3c
7 changed files with 37 additions and 38 deletions

View File

@@ -67,11 +67,11 @@ public partial class PlayerPositionsToShader : UdonSharpBehaviour
private float _nextUpdate = 0f; private float _nextUpdate = 0f;
private static readonly int UdonID_PlayerPositions; private int UdonID_PlayerPositions;
private static readonly int UdonID_LightCount; private int UdonID_LightCount;
private static readonly int UdonID_LightColors; private int UdonID_LightColors;
private static readonly int UdonID_LightDirections; private int UdonID_LightDirections;
private static readonly int UdonID_LightType; private int UdonID_LightType;
void Start() void Start()
{ {

View File

@@ -112,18 +112,18 @@ Shader "DeMuenu/World/Hoppou/RevealStandart"
//Moonlight //Moonlight
float3 N = normalize(i.worldNormal); /*for lambertian diffuse*/ float3 N = normalize(i.worldNormal); /*for lambertian diffuse*/
OutLoopSetup(i, _PlayerCount) //defines count, N, dmax, dIntensity OutLoopSetup(i, _Udon_PlayerCount) //defines count, N, dmax, dIntensity
[loop] [loop]
for (int LightCounter = 0; LightCounter < MAX_LIGHTS; LightCounter++) for (int LightCounter = 0; LightCounter < MAX_LIGHTS; LightCounter++)
{ {
InLoopSetup(_LightPositions, LightCounter, count, i); //defines distanceFromLight, contrib InLoopSetup(_Udon_LightPositions, LightCounter, count, i); //defines distanceFromLight, contrib
//Lambertian diffuse //Lambertian diffuse
Lambert(_LightPositions[LightCounter].xyz ,i, N); //defines NdotL Lambert(_Udon_LightPositions[LightCounter].xyz ,i, N); //defines NdotL
LightTypeCalculations(_LightColors, LightCounter, i, NdotL, dIntensity, _LightPositions[LightCounter].a, _LightPositions[LightCounter].xyz); LightTypeCalculations(_Udon_LightColors, LightCounter, i, NdotL, dIntensity, _Udon_LightPositions[LightCounter].a, _Udon_LightPositions[LightCounter].xyz);
dmax = dmax + contrib * float4(LightColor, 1) * NdotL; // accumulate light contributions dmax = dmax + contrib * float4(LightColor, 1) * NdotL; // accumulate light contributions

View File

@@ -1,8 +1,8 @@
#ifndef InLoopSetup #ifndef InLoopSetup
#define InLoopSetup(_LightPositions, LightCounter, count, i) \ #define InLoopSetup(_Udon_LightPositions, LightCounter, count, i) \
if (LightCounter >= count) break; \ if (LightCounter >= count) break; \
\ \
float distanceFromLight = length(i.worldPos - _LightPositions[LightCounter].xyz); \ float distanceFromLight = length(i.worldPos - _Udon_LightPositions[LightCounter].xyz); \
if (distanceFromLight > _LightCutoffDistance) continue; \ if (distanceFromLight > _LightCutoffDistance) continue; \
\ \
float contrib = 0.0; float contrib = 0.0;
@@ -10,8 +10,8 @@
#endif #endif
#ifndef OutLoopSetup #ifndef OutLoopSetup
#define OutLoopSetup(i, _PlayerCount) \ #define OutLoopSetup(i, _Udon_PlayerCount) \
int count = (int)_PlayerCount; \ int count = (int)_Udon_PlayerCount; \
\ \
float4 dmax = float4(0,0,0,1); \ float4 dmax = float4(0,0,0,1); \
float dIntensity = 0; float dIntensity = 0;

View File

@@ -1,25 +1,25 @@
#ifndef LightTypeCalculations #ifndef LightTypeCalculations
#define LightTypeCalculations(_LightColors ,LightCounter, i, NdotL, dIntensity, radius, Lightposition) \ #define LightTypeCalculations(_Udon_LightColors ,LightCounter, i, NdotL, dIntensity, radius, Lightposition) \
float invSqMul = max(1e-4, _InverseSqareMultiplier); \ float invSqMul = max(1e-4, _InverseSqareMultiplier); \
\ \
if(_LightType[LightCounter] == 0) \ if(_Udon_LightType[LightCounter] == 0) \
{ \ { \
contrib = _LightColors[LightCounter].a / max(1e-4, max(0, max(1, distanceFromLight - radius) * invSqMul) * max(0, max(1, distanceFromLight - radius) * invSqMul)); \ 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; \ dIntensity += contrib * NdotL; \
} \ } \
else if (_LightType[LightCounter] == 1) \ else if (_Udon_LightType[LightCounter] == 1) \
{ \ { \
float invSq = _LightColors[LightCounter].a / max(1e-4, (distanceFromLight * invSqMul) * (distanceFromLight * invSqMul)); \ float invSq = _Udon_LightColors[LightCounter].a / max(1e-4, (distanceFromLight * invSqMul) * (distanceFromLight * invSqMul)); \
float threshold = (-1 + _LightDirections[LightCounter].w / 180); \ float threshold = (-1 + _Udon_LightDirections[LightCounter].w / 180); \
\ \
contrib = min(dot(normalize(i.worldPos - Lightposition), -normalize(_LightDirections[LightCounter].xyz)), 0); \ contrib = min(dot(normalize(i.worldPos - Lightposition), -normalize(_Udon_LightDirections[LightCounter].xyz)), 0); \
contrib= 1 - step(threshold, contrib); \ contrib= 1 - step(threshold, contrib); \
\ \
contrib = contrib * invSq; \ contrib = contrib * invSq; \
dIntensity += contrib * NdotL; \ dIntensity += contrib * NdotL; \
} \ } \
float3 LightColor = _LightColors[LightCounter].xyz; \ float3 LightColor = _Udon_LightColors[LightCounter].xyz; \
#endif #endif

View File

@@ -2,13 +2,12 @@
#define MoonlightGlobalVariables \ #define MoonlightGlobalVariables \
\ \
float _InverseSqareMultiplier; \ float _InverseSqareMultiplier; \
float _LightCutoffDistance; \ float _LightCutoffDistance; \
\ \
float4 _LightPositions[MAX_LIGHTS]; /* xyz = position */ \ float4 _Udon_LightPositions[MAX_LIGHTS]; /* xyz = position */ \
float4 _LightColors[MAX_LIGHTS]; /* xyz = position */ \ float4 _Udon_LightColors[MAX_LIGHTS]; /* xyz = position */ \
float4 _LightDirections[MAX_LIGHTS]; /* xyz = direction, w = cos(halfAngle) */ \ float4 _Udon_LightDirections[MAX_LIGHTS]; /* xyz = direction, w = cos(halfAngle) */ \
float _LightType[MAX_LIGHTS]; /* 0 = sphere, 1 = cone */ \ float _Udon_LightType[MAX_LIGHTS]; /* 0 = sphere, 1 = cone */ \
float _PlayerCount; /* set via SetFloat */ \ float _Udon_PlayerCount; /* set via SetFloat */ \
\
#endif #endif

View File

@@ -106,17 +106,17 @@ Shader "DeMuenu/World/Hoppou/Particles/LitParticles"
//Moonlight //Moonlight
float3 N = normalize(i.worldNormal); /*for lambertian diffuse*/ float3 N = normalize(i.worldNormal); /*for lambertian diffuse*/
OutLoopSetup(i, _PlayerCount) //defines count, N, dmax, dIntensity OutLoopSetup(i, _Udon_PlayerCount) //defines count, N, dmax, dIntensity
[loop] [loop]
for (int LightCounter = 0; LightCounter < MAX_LIGHTS; LightCounter++) for (int LightCounter = 0; LightCounter < MAX_LIGHTS; LightCounter++)
{ {
InLoopSetup(_LightPositions, LightCounter, count, i); //defines distanceFromLight, contrib InLoopSetup(_Udon_LightPositions, LightCounter, count, i); //defines distanceFromLight, contrib
Lambert(_LightPositions[LightCounter].xyz ,i, N); //defines NdotL Lambert(_Udon_LightPositions[LightCounter].xyz ,i, N); //defines NdotL
LightTypeCalculations(_LightColors, LightCounter, i, NdotL, dIntensity, _LightPositions[LightCounter].a, _LightPositions[LightCounter].xyz); LightTypeCalculations(_Udon_LightColors, LightCounter, i, NdotL, dIntensity, _Udon_LightPositions[LightCounter].a, _Udon_LightPositions[LightCounter].xyz);
dmax = dmax + contrib * float4(LightColor, 1) * NdotL; // accumulate light contributions dmax = dmax + contrib * float4(LightColor, 1) * NdotL; // accumulate light contributions

View File

@@ -153,16 +153,16 @@ Shader "DeMuenu/World/Hoppou/Water"
float3 R = reflect(-V, N); //for reflection vector float3 R = reflect(-V, N); //for reflection vector
//Waterspecific END //Waterspecific END
OutLoopSetup(i, _PlayerCount) //defines count, N, dmax, dIntensity OutLoopSetup(i, _Udon_PlayerCount) //defines count, N, dmax, dIntensity
[loop] [loop]
for (int LightCounter = 0; LightCounter < MAX_LIGHTS; LightCounter++) for (int LightCounter = 0; LightCounter < MAX_LIGHTS; LightCounter++)
{ {
InLoopSetup(_LightPositions, LightCounter, count, i); //defines distanceFromLight, contrib InLoopSetup(_Udon_LightPositions, LightCounter, count, i); //defines distanceFromLight, contrib
Lambert(_LightPositions[LightCounter].xyz ,i, N); Lambert(_Udon_LightPositions[LightCounter].xyz ,i, N);
LightTypeCalculations(_LightColors, LightCounter, i, 1, dIntensity, _LightPositions[LightCounter].a, _LightPositions[LightCounter].xyz); LightTypeCalculations(_Udon_LightColors, LightCounter, i, 1, dIntensity, _Udon_LightPositions[LightCounter].a, _Udon_LightPositions[LightCounter].xyz);
@@ -171,7 +171,7 @@ Shader "DeMuenu/World/Hoppou/Water"
float3 R = reflect(-V, N); float3 R = reflect(-V, N);
float spec = pow(saturate(dot(R, L)), _SpecPower); float spec = pow(saturate(dot(R, L)), _SpecPower);
//return float4(spec, spec, spec,1); //return float4(spec, spec, spec,1);
dmax.rgb += _LightColors[LightCounter].rgb * contrib + _LightColors[LightCounter].rgb * _SpecIntensity * spec * contrib; dmax.rgb += _Udon_LightColors[LightCounter].rgb * contrib + _Udon_LightColors[LightCounter].rgb * _SpecIntensity * spec * contrib;
dmax.a -= _SpecIntensity * spec; dmax.a -= _SpecIntensity * spec;
//dmax = dmax + contrib * float4(LightColor, 1); // accumulate light contributions //dmax = dmax + contrib * float4(LightColor, 1); // accumulate light contributions