public void Execute(int index) { ReflectionCube cube = ReflectionCube.allCubes[index]; if (PipelineFunctions.FrustumCulling(ref cube.localToWorld, new Vector3(0.5f, 0.5f, 0.5f), planes)) { #if UNITY_EDITOR //For debugging if (!resultIndices.ConcurrentAdd(index)) { Debug.LogError("Reflection culling Out of range"); } #else resultIndices.ConcurrentAdd(index); #endif } }
public void Execute(int index) { MPointLight cube = MPointLight.allPointLights[index]; if (PipelineFunctions.FrustumCulling(cube.position, cube.range, planes)) { if (cube.useShadow) { int last = Interlocked.Increment(ref *shadowCount) - 1; indices[last] = index; } else { int last = Interlocked.Increment(ref *unShadowCount) - 1; indices[length - last] = index; } } }