Пример #1
0
 public static void Extract(Light l, ref DirectionalLight dir)
 {
     dir.instanceID          = l.GetInstanceID();
     dir.mode                = LightmapperUtils.Extract(l.lightmapBakeType);
     dir.shadow              = (l.shadows != LightShadows.None);
     dir.direction           = l.transform.forward;
     dir.color               = LinearColor.Convert(l.color, l.intensity);
     dir.indirectColor       = LightmapperUtils.ExtractIndirect(l);
     dir.penumbraWidthRadian = ((l.shadows != LightShadows.Soft) ? 0f : (0.0174532924f * l.shadowAngle));
 }
Пример #2
0
 public static void Extract(Light l, ref PointLight point)
 {
     point.instanceID    = l.GetInstanceID();
     point.mode          = LightmapperUtils.Extract(l.lightmapBakeType);
     point.shadow        = (l.shadows != LightShadows.None);
     point.position      = l.transform.position;
     point.color         = LinearColor.Convert(l.color, l.intensity);
     point.indirectColor = LightmapperUtils.ExtractIndirect(l);
     point.range         = l.range;
     point.sphereRadius  = ((l.shadows != LightShadows.Soft) ? 0f : l.shadowRadius);
 }
Пример #3
0
            internal void cctor > b__7_0(Light[] requests, NativeArray <LightDataGI> lightsOutput)
            {
                DirectionalLight directionalLight = default(DirectionalLight);
                PointLight       pointLight       = default(PointLight);
                SpotLight        spotLight        = default(SpotLight);
                RectangleLight   rectangleLight   = default(RectangleLight);
                DiscLight        discLight        = default(DiscLight);
                Cookie           cookie           = default(Cookie);
                LightDataGI      value            = default(LightDataGI);

                for (int i = 0; i < requests.Length; i++)
                {
                    Light light = requests[i];
                    switch (light.type)
                    {
                    case UnityEngine.LightType.Spot:
                        LightmapperUtils.Extract(light, ref spotLight);
                        LightmapperUtils.Extract(light, out cookie);
                        value.Init(ref spotLight, ref cookie);
                        break;

                    case UnityEngine.LightType.Directional:
                        LightmapperUtils.Extract(light, ref directionalLight);
                        LightmapperUtils.Extract(light, out cookie);
                        value.Init(ref directionalLight, ref cookie);
                        break;

                    case UnityEngine.LightType.Point:
                        LightmapperUtils.Extract(light, ref pointLight);
                        LightmapperUtils.Extract(light, out cookie);
                        value.Init(ref pointLight, ref cookie);
                        break;

                    case UnityEngine.LightType.Area:
                        LightmapperUtils.Extract(light, ref rectangleLight);
                        LightmapperUtils.Extract(light, out cookie);
                        value.Init(ref rectangleLight, ref cookie);
                        break;

                    case UnityEngine.LightType.Disc:
                        LightmapperUtils.Extract(light, ref discLight);
                        LightmapperUtils.Extract(light, out cookie);
                        value.Init(ref discLight, ref cookie);
                        break;

                    default:
                        value.InitNoBake(light.GetInstanceID());
                        break;
                    }
                    lightsOutput[i] = value;
                }
            }
Пример #4
0
 public static void Extract(Light l, ref RectangleLight rect)
 {
     rect.instanceID    = l.GetInstanceID();
     rect.mode          = LightmapperUtils.Extract(l.lightmapBakeType);
     rect.shadow        = (l.shadows != LightShadows.None);
     rect.position      = l.transform.position;
     rect.orientation   = l.transform.rotation;
     rect.color         = LinearColor.Convert(l.color, l.intensity);
     rect.indirectColor = LightmapperUtils.ExtractIndirect(l);
     rect.range         = l.range;
     rect.width         = l.areaSize.x;
     rect.height        = l.areaSize.y;
 }
Пример #5
0
 public static void Extract(Light l, ref SpotLight spot)
 {
     spot.instanceID     = l.GetInstanceID();
     spot.mode           = LightmapperUtils.Extract(l.lightmapBakeType);
     spot.shadow         = (l.shadows != LightShadows.None);
     spot.position       = l.transform.position;
     spot.orientation    = l.transform.rotation;
     spot.color          = LinearColor.Convert(l.color, l.intensity);
     spot.indirectColor  = LightmapperUtils.ExtractIndirect(l);
     spot.range          = l.range;
     spot.sphereRadius   = ((l.shadows != LightShadows.Soft) ? 0f : l.shadowRadius);
     spot.coneAngle      = l.spotAngle * 0.0174532924f;
     spot.innerConeAngle = LightmapperUtils.ExtractInnerCone(l);
 }
Пример #6
0
        public static void Extract(Light l, ref DirectionalLight dir)
        {
            dir.instanceID  = l.GetInstanceID();
            dir.mode        = LightmapperUtils.Extract(l.lightmapBakeType);
            dir.shadow      = (l.shadows > LightShadows.None);
            dir.position    = l.transform.position;
            dir.orientation = l.transform.rotation;
            Color       cct           = LightmapperUtils.ExtractColorTemperature(l);
            LinearColor color         = LinearColor.Convert(l.color, l.intensity);
            LinearColor indirectColor = LightmapperUtils.ExtractIndirect(l);

            LightmapperUtils.ApplyColorTemperature(cct, ref color);
            LightmapperUtils.ApplyColorTemperature(cct, ref indirectColor);
            dir.color               = color;
            dir.indirectColor       = indirectColor;
            dir.penumbraWidthRadian = ((l.shadows == LightShadows.Soft) ? (0.0174532924f * l.shadowAngle) : 0f);
        }
Пример #7
0
        public static void Extract(Light l, ref PointLight point)
        {
            point.instanceID = l.GetInstanceID();
            point.mode       = LightmapperUtils.Extract(l.lightmapBakeType);
            point.shadow     = (l.shadows > LightShadows.None);
            point.position   = l.transform.position;
            Color       cct           = LightmapperUtils.ExtractColorTemperature(l);
            LinearColor color         = LinearColor.Convert(l.color, l.intensity);
            LinearColor indirectColor = LightmapperUtils.ExtractIndirect(l);

            LightmapperUtils.ApplyColorTemperature(cct, ref color);
            LightmapperUtils.ApplyColorTemperature(cct, ref indirectColor);
            point.color         = color;
            point.indirectColor = indirectColor;
            point.range         = l.range;
            point.sphereRadius  = ((l.shadows == LightShadows.Soft) ? l.shadowRadius : 0f);
            point.falloff       = FalloffType.Legacy;
        }
Пример #8
0
        public static void Extract(Light l, ref DiscLight disc)
        {
            disc.instanceID  = l.GetInstanceID();
            disc.mode        = LightmapperUtils.Extract(l.lightmapBakeType);
            disc.shadow      = (l.shadows > LightShadows.None);
            disc.position    = l.transform.position;
            disc.orientation = l.transform.rotation;
            Color       cct           = LightmapperUtils.ExtractColorTemperature(l);
            LinearColor color         = LinearColor.Convert(l.color, l.intensity);
            LinearColor indirectColor = LightmapperUtils.ExtractIndirect(l);

            LightmapperUtils.ApplyColorTemperature(cct, ref color);
            LightmapperUtils.ApplyColorTemperature(cct, ref indirectColor);
            disc.color         = color;
            disc.indirectColor = indirectColor;
            disc.range         = l.range;
            disc.radius        = l.areaSize.x;
            disc.falloff       = FalloffType.Legacy;
        }
Пример #9
0
        public static void Extract(Light l, ref RectangleLight rect)
        {
            rect.instanceID  = l.GetInstanceID();
            rect.mode        = LightmapperUtils.Extract(l.lightmapBakeType);
            rect.shadow      = (l.shadows > LightShadows.None);
            rect.position    = l.transform.position;
            rect.orientation = l.transform.rotation;
            Color       cct           = LightmapperUtils.ExtractColorTemperature(l);
            LinearColor color         = LinearColor.Convert(l.color, l.intensity);
            LinearColor indirectColor = LightmapperUtils.ExtractIndirect(l);

            LightmapperUtils.ApplyColorTemperature(cct, ref color);
            LightmapperUtils.ApplyColorTemperature(cct, ref indirectColor);
            rect.color         = color;
            rect.indirectColor = indirectColor;
            rect.range         = l.range;
            rect.width         = l.areaSize.x;
            rect.height        = l.areaSize.y;
            rect.falloff       = FalloffType.Legacy;
        }
Пример #10
0
        public static void Extract(Light l, ref SpotLight spot)
        {
            spot.instanceID  = l.GetInstanceID();
            spot.mode        = LightmapperUtils.Extract(l.lightmapBakeType);
            spot.shadow      = (l.shadows > LightShadows.None);
            spot.position    = l.transform.position;
            spot.orientation = l.transform.rotation;
            Color       cct           = LightmapperUtils.ExtractColorTemperature(l);
            LinearColor color         = LinearColor.Convert(l.color, l.intensity);
            LinearColor indirectColor = LightmapperUtils.ExtractIndirect(l);

            LightmapperUtils.ApplyColorTemperature(cct, ref color);
            LightmapperUtils.ApplyColorTemperature(cct, ref indirectColor);
            spot.color          = color;
            spot.indirectColor  = indirectColor;
            spot.range          = l.range;
            spot.sphereRadius   = ((l.shadows == LightShadows.Soft) ? l.shadowRadius : 0f);
            spot.coneAngle      = l.spotAngle * 0.0174532924f;
            spot.innerConeAngle = LightmapperUtils.ExtractInnerCone(l);
            spot.falloff        = FalloffType.Legacy;
            spot.angularFalloff = AngularFalloffType.LUT;
        }