public static SunlightParameters DeepCopy(SunlightParameters c) { SunlightParameters temp = new SunlightParameters(); temp.orientationParameters = SunlightOrientationParameters.DeepCopy(c.orientationParameters); temp.lightParameters = LightParameters.DeepCopy(c.lightParameters); temp.colorGradient = c.colorGradient; temp.intensityCurve = c.intensityCurve; return(temp); }
private void GatherOverrides() { modifiedOrientationParameters = SunlightOrientationParameters.DeepCopy(sunlightParameters.orientationParameters); if (stack == null) { return; } var sunProps = stack.GetComponent <SunlightProperties>(); if (sunlightParameters.lightParameters == null || modifiedOrientationParameters == null) { return; } if (sunProps.lattitude.overrideState) { modifiedOrientationParameters.lattitude = sunProps.lattitude.value; } if (sunProps.YAxis.overrideState) { modifiedOrientationParameters.yAxis = sunProps.YAxis.value; } if (Application.isPlaying) { //modifiedOrientationParameters.timeOfDay = Manager.Get<TimeOfDayManager>().timeOfDay; modifiedOrientationParameters.timeOfDay = Globals.GetFloat("TimeOfDay", Globals.Scope.Global); } //If overridden in volumes intensity is constant, otherwise driven by curve * intensity modifiedLightParameters = LightParameters.DeepCopy(sunlightParameters.lightParameters); if (sunProps.intensity.overrideState) { modifiedLightParameters.intensity = sunProps.intensity.value; } else if (sunlightParameters.intensityCurve != null) { modifiedLightParameters.intensity = sunlightParameters.intensityCurve.Evaluate(sunlightParameters.orientationParameters.timeOfDay) * sunlightParameters.lightParameters.intensity; } else if (sunlightParameters.intensityCurve == null) { modifiedLightParameters.intensity = sunlightParameters.lightParameters.intensity; } //If overridden intensity is constant, otherwise driven by gradient if (sunProps.color.overrideState) { modifiedLightParameters.colorFilter = sunProps.color.value; } else if (sunlightParameters.colorGradient != null) { modifiedLightParameters.colorFilter = sunlightParameters.colorGradient.Evaluate(sunlightParameters.orientationParameters.timeOfDay / 24); } if (sunProps.indirectMultiplier.overrideState) { modifiedLightParameters.indirectIntensity = sunProps.indirectMultiplier.value; } if (sunProps.cookieTexture.overrideState) { modifiedLightParameters.lightCookie = sunProps.cookieTexture.value; } if (sunProps.cookieSize.overrideState) { modifiedLightParameters.cookieSize = sunProps.cookieSize.value; } if (sunProps.shadowResolution.overrideState) { modifiedLightParameters.shadowResolution = sunProps.shadowResolution.value; } if (sunProps.shadowTint.overrideState) { modifiedLightParameters.shadowTint = sunProps.shadowTint.value; } if (sunProps.penumbraTint.overrideState) { modifiedLightParameters.penumbraTint = sunProps.penumbraTint.value; } }
private void GatherOverrides() { modifiedOrientationParameters = SunlightOrientationParameters.DeepCopy(sunlightParameters.orientationParameters); if (stack == null) { return; } var sunProps = stack.GetComponent <SunlightProperties>(); if (sunlightParameters.lightParameters == null || modifiedOrientationParameters == null) { return; } if (sunProps.lattitude.overrideState) { modifiedOrientationParameters.lattitude = sunProps.lattitude.value; } if (sunProps.YAxis.overrideState) { modifiedOrientationParameters.yAxis = sunProps.YAxis.value; } if (sunProps.timeOfDay.overrideState) { modifiedOrientationParameters.timeOfDay = sunProps.timeOfDay.value; } //If overridden intensity is constant, otherwise drive by curve if (sunProps.intensity.overrideState) { sunlightParameters.lightParameters.intensity = sunProps.intensity; } else if (sunlightParameters.intensityCurve != null) { sunlightParameters.lightParameters.intensity = sunlightParameters.intensityCurve.Evaluate(sunlightParameters.orientationParameters.timeOfDay); } if (sunlightParameters.intensityCurve == null) { Debug.LogWarning("Sun intensity curve is null"); } //If overridden intensity is constant, otherwise driven by gradient if (sunProps.color.overrideState) { sunlightParameters.lightParameters.colorFilter = sunProps.color; } else if (sunlightParameters.colorGradient != null) { sunlightParameters.lightParameters.colorFilter = sunlightParameters.colorGradient.Evaluate(sunlightParameters.orientationParameters.timeOfDay / 24); } if (sunProps.indirectMultiplier.overrideState) { sunlightParameters.lightParameters.indirectIntensity = sunProps.indirectMultiplier; } if (sunProps.cookieTexture.overrideState) { sunlightParameters.lightParameters.lightCookie = sunProps.cookieTexture; } if (sunProps.cookieSize.overrideState) { sunlightParameters.lightParameters.cookieSize = sunProps.cookieSize; } if (sunProps.shadowResolution.overrideState) { sunlightParameters.lightParameters.shadowResolution = sunProps.shadowResolution; } }