mirror of
https://github.com/DeMuenu/MoonlightVRC.git
synced 2026-05-06 10:22:20 +00:00
optimisations skipping empty for loops
This commit is contained in:
@@ -368,7 +368,7 @@ public partial class LightUpdater : UdonSharpBehaviour
|
||||
if (pushShadowMap) VRCShader.SetGlobalFloatArray(UdonID_ShadowMapIndex, _ShadowMapArray);
|
||||
|
||||
VRCShader.SetGlobalFloat(UdonID_LightCount, currentCount);
|
||||
Debug.Log($"[MoonlightVRC] Pushed {currentCount} lights to shader.");
|
||||
//Debug.Log($"[MoonlightVRC] Pushed {currentCount} lights to shader.");
|
||||
|
||||
// Only now mark them clean
|
||||
if (pushPositions) { _positons_isDirty = false; }
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
{ \
|
||||
float distAtten = max(1.0, distanceFromLight - radius) * invSqMul; \
|
||||
contrib = _Udon_LightColors[LightCounter].a / max(1e-4, distAtten * distAtten); \
|
||||
\
|
||||
if (contrib == 0.0) continue;\
|
||||
dIntensity += contrib; \
|
||||
} \
|
||||
else if (typeId == 1) \
|
||||
@@ -18,6 +18,7 @@
|
||||
contrib = smoothstep(radius,_Udon_LightDirections[LightCounter].w, contrib); \
|
||||
\
|
||||
contrib = contrib * invSq; \
|
||||
if (contrib == 0.0) continue;\
|
||||
dIntensity += contrib; \
|
||||
} \
|
||||
half3 LightColor = _Udon_LightColors[LightCounter].xyz; \
|
||||
|
||||
@@ -105,7 +105,7 @@ Shader "DeMuenu/World/Hoppou/Particles/LitParticles_2SP"
|
||||
OutLoopSetup(i, _Udon_PlayerCount) //defines count, N, dmax, dIntensity
|
||||
|
||||
[loop]
|
||||
for (int LightCounter = 0; LightCounter < MAX_LIGHTS; LightCounter++)
|
||||
for (int LightCounter = 0; LightCounter < count; LightCounter++)
|
||||
{
|
||||
|
||||
InLoopSetup(_Udon_LightPositions, LightCounter, count, i); //defines distanceFromLight, contrib
|
||||
|
||||
@@ -130,7 +130,7 @@ Shader "DeMuenu/World/Hoppou/Standard_2SP"
|
||||
OutLoopSetup(i, _Udon_PlayerCount) //defines count, N, dmax, dIntensity
|
||||
|
||||
[loop]
|
||||
for (int LightCounter = 0; LightCounter < MAX_LIGHTS; LightCounter++)
|
||||
for (int LightCounter = 0; LightCounter < count; LightCounter++)
|
||||
{
|
||||
InLoopSetup(_Udon_LightPositions, LightCounter, count, i); //defines distanceFromLight, contrib
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ Shader "DeMuenu/World/Hoppou/Standard_Lightmap_2SP"
|
||||
OutLoopSetup(i, _Udon_PlayerCount) //defines count, N, dmax, dIntensity
|
||||
|
||||
[loop]
|
||||
for (int LightCounter = 0; LightCounter < MAX_LIGHTS; LightCounter++)
|
||||
for (int LightCounter = 0; LightCounter < count; LightCounter++)
|
||||
{
|
||||
InLoopSetup(_Udon_LightPositions, LightCounter, count, i); //defines distanceFromLight, contrib
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ Shader "DeMuenu/World/Hoppou/WaterFlat_2SP"
|
||||
OutLoopSetup(i, _Udon_PlayerCount) //defines count, N, dmax, dIntensity
|
||||
|
||||
[loop]
|
||||
for (int LightCounter = 0; LightCounter < MAX_LIGHTS; LightCounter++)
|
||||
for (int LightCounter = 0; LightCounter < count; LightCounter++)
|
||||
{
|
||||
InLoopSetup(_Udon_LightPositions, LightCounter, count, i); //defines distanceFromLight, contrib
|
||||
|
||||
|
||||
Reference in New Issue
Block a user