Пример #1
0
        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;
                }
            }
        }