You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1446 lines
64 KiB
1446 lines
64 KiB
3 years ago
|
/* Sky based on paper of A. J. Preetham
|
||
|
* https://www.cs.utah.edu/~shirley/papers/sunsky/sunsky.pdf
|
||
|
*
|
||
|
* and
|
||
|
*
|
||
|
* Ralf Stokholm Nielsen
|
||
|
* http://etd.dtu.dk/thesis/58645/imm2554.pdf
|
||
|
*/
|
||
|
|
||
|
using UnityEngine;
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
|
||
|
[AddComponentMenu("azure[Sky]/Sky Controller")]
|
||
|
[ExecuteInEditMode]
|
||
|
public class AzureSky_Controller : MonoBehaviour {
|
||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
//=========================================begins VARIABLES==============================================
|
||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
//Used in the Editor Script only.
|
||
|
public bool showTimeOfDay = true; public bool showObj_and_Mat = false;
|
||
|
public bool showScattering = false; public bool showSkySettings = false;
|
||
|
public bool showFogSettings = false; public bool showCloudSettings = false;
|
||
|
public bool showAmbient = false; public bool showLighting = false;
|
||
|
public bool showTextures = false; public bool showOptions = false;
|
||
|
public bool showOutput = false;
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//========================================Time of Day Tab================================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
public int DAY_of_WEEK = 0;
|
||
|
public int NUMBER_of_DAYS = 7;
|
||
|
public float TIME_of_DAY = 6.0f;
|
||
|
public float TIME_of_DAY_by_CURVE = 6.0f;
|
||
|
public int UTC = 0;
|
||
|
public float Longitude = 0.0f;
|
||
|
public float DAY_CYCLE = 3.0f; // In Minutes.
|
||
|
public float PassTime = 0.0f;
|
||
|
// public float azure_East = 0.0f;
|
||
|
private Vector3 sun_v3 = Vector3.zero; // For the Sun Rotation
|
||
|
public bool SetTime_By_Curve = false;
|
||
|
public AnimationCurve DayNightLengthCurve = AnimationCurve.Linear(0,0,24,24);
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//=======================================Game Objects Tab================================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
public GameObject Sun_DirectionalLight; public GameObject Moon_DirectionalLight;
|
||
|
public Material Sky_Material; public Material Fog_Material;
|
||
|
public Material Moon_Material; public ReflectionProbe AzureReflectionProbe;
|
||
|
|
||
|
public float Lightincrement = 0;
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//=================================For Scattering Tab and Equations======================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
public float RayCoeff = 1.5f; // Rayleigh coefficient.
|
||
|
public float MieCoeff = 1.0f; // Mie coefficient.
|
||
|
public float Turbidity = 1.0f;
|
||
|
public float g = 0.75f; // Directionality factor.
|
||
|
public float SkyCoeff = 2000.0f;
|
||
|
public float SunIntensity = 100.0f; // Intensity of the sunlight in the sky.
|
||
|
public float MoonIntensity = 0.25f; // Intensity of the moonlight in the sky.
|
||
|
public float Kr = 8.4f;
|
||
|
public float Km = 1.25f;
|
||
|
public float Altitude = 0.05f;
|
||
|
public List<AnimationCurve> LambdaCurveR = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,650.0f,24,650.0f),
|
||
|
AnimationCurve.Linear(0,650.0f,24,650.0f),
|
||
|
AnimationCurve.Linear(0,650.0f,24,650.0f),
|
||
|
AnimationCurve.Linear(0,650.0f,24,650.0f),
|
||
|
AnimationCurve.Linear(0,650.0f,24,650.0f),
|
||
|
AnimationCurve.Linear(0,650.0f,24,650.0f),
|
||
|
AnimationCurve.Linear(0,650.0f,24,650.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> LambdaCurveG = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,570.0f,24,570.0f),
|
||
|
AnimationCurve.Linear(0,570.0f,24,570.0f),
|
||
|
AnimationCurve.Linear(0,570.0f,24,570.0f),
|
||
|
AnimationCurve.Linear(0,570.0f,24,570.0f),
|
||
|
AnimationCurve.Linear(0,570.0f,24,570.0f),
|
||
|
AnimationCurve.Linear(0,570.0f,24,570.0f),
|
||
|
AnimationCurve.Linear(0,570.0f,24,570.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> LambdaCurveB = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,475.0f,24,475.0f),
|
||
|
AnimationCurve.Linear(0,475.0f,24,475.0f),
|
||
|
AnimationCurve.Linear(0,475.0f,24,475.0f),
|
||
|
AnimationCurve.Linear(0,475.0f,24,475.0f),
|
||
|
AnimationCurve.Linear(0,475.0f,24,475.0f),
|
||
|
AnimationCurve.Linear(0,475.0f,24,475.0f),
|
||
|
AnimationCurve.Linear(0,475.0f,24,475.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> RayCoeffCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> MieCoeffCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> TurbidityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> gCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,0.75f,24,0.75f),
|
||
|
AnimationCurve.Linear(0,0.75f,24,0.75f),
|
||
|
AnimationCurve.Linear(0,0.75f,24,0.75f),
|
||
|
AnimationCurve.Linear(0,0.75f,24,0.75f),
|
||
|
AnimationCurve.Linear(0,0.75f,24,0.75f),
|
||
|
AnimationCurve.Linear(0,0.75f,24,0.75f),
|
||
|
AnimationCurve.Linear(0,0.75f,24,0.75f)
|
||
|
};
|
||
|
public List<AnimationCurve> SkyCoeffCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,2000.0f,24,2000.0f),
|
||
|
AnimationCurve.Linear(0,2000.0f,24,2000.0f),
|
||
|
AnimationCurve.Linear(0,2000.0f,24,2000.0f),
|
||
|
AnimationCurve.Linear(0,2000.0f,24,2000.0f),
|
||
|
AnimationCurve.Linear(0,2000.0f,24,2000.0f),
|
||
|
AnimationCurve.Linear(0,2000.0f,24,2000.0f),
|
||
|
AnimationCurve.Linear(0,2000.0f,24,2000.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> SunIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,100.0f,24,100.0f),
|
||
|
AnimationCurve.Linear(0,100.0f,24,100.0f),
|
||
|
AnimationCurve.Linear(0,100.0f,24,100.0f),
|
||
|
AnimationCurve.Linear(0,100.0f,24,100.0f),
|
||
|
AnimationCurve.Linear(0,100.0f,24,100.0f),
|
||
|
AnimationCurve.Linear(0,100.0f,24,100.0f),
|
||
|
AnimationCurve.Linear(0,100.0f,24,100.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> MoonIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f),
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f),
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f),
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f),
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f),
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f),
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f)
|
||
|
};
|
||
|
public List<AnimationCurve> KrCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,8.4f,24,8.4f),
|
||
|
AnimationCurve.Linear(0,8.4f,24,8.4f),
|
||
|
AnimationCurve.Linear(0,8.4f,24,8.4f),
|
||
|
AnimationCurve.Linear(0,8.4f,24,8.4f),
|
||
|
AnimationCurve.Linear(0,8.4f,24,8.4f),
|
||
|
AnimationCurve.Linear(0,8.4f,24,8.4f),
|
||
|
AnimationCurve.Linear(0,8.4f,24,8.4f)
|
||
|
};
|
||
|
public List<AnimationCurve> KmCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.25f,24,1.25f),
|
||
|
AnimationCurve.Linear(0,1.25f,24,1.25f),
|
||
|
AnimationCurve.Linear(0,1.25f,24,1.25f),
|
||
|
AnimationCurve.Linear(0,1.25f,24,1.25f),
|
||
|
AnimationCurve.Linear(0,1.25f,24,1.25f),
|
||
|
AnimationCurve.Linear(0,1.25f,24,1.25f),
|
||
|
AnimationCurve.Linear(0,1.25f,24,1.25f)
|
||
|
};
|
||
|
public List<AnimationCurve> AltitudeCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f),
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f),
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f),
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f),
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f),
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f),
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f)
|
||
|
};
|
||
|
|
||
|
// Original value of lambda"(wavelength)" is Vector3(680e-9f, 550e-9f, 450e-9f).
|
||
|
// Used integers for customization in the Inspector, will need...
|
||
|
// ... convert to original scale before using in the equations, multiplying by 1.0e-9f.
|
||
|
public Vector3 lambda = new Vector3(650.0f, 570.0f, 475.0f);
|
||
|
private Vector3 K = new Vector3(686.0f, 678.0f, 666.0f);
|
||
|
private const float n = 1.0003f; // Refractive index of air.
|
||
|
private const float N = 2.545E25f; // Molecular density.
|
||
|
private const float pn = 0.035f; // Depolatization factor for standard air.
|
||
|
private const float pi = Mathf.PI; // 3.141592
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//=========================================Sky Settings Tab==============================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
public float SkyLuminance = 1.0f;
|
||
|
public float SkyDarkness = 1.0f;
|
||
|
public float SunsetPower = 3.5f;
|
||
|
public float SunDiskSize = 250.0f;
|
||
|
public float SunDiskIntensity = 3.0f;
|
||
|
public float SunDiskPropagation = -1.5f;
|
||
|
public float MoonSize = 5.0f;
|
||
|
public float StarsIntensity = 5.0f;
|
||
|
public float StarsExtinction = 0.5f;
|
||
|
public float MoonColorPower = 2.15f;
|
||
|
public float MoonExtinction = 0.5f;
|
||
|
public float MilkyWayIntensity = 0.0f;
|
||
|
public float MilkyWayPower = 2.5f;
|
||
|
public float Exposure = 1.5f;
|
||
|
|
||
|
public float NightSkyFarColorDistance = 0.5f;
|
||
|
public float NightSkyFarColorPower = 0.25f;
|
||
|
|
||
|
public List<AnimationCurve> SkyLuminanceCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> SkyDarknessCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> SunsetPowerCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,3.5f,24,3.5f),
|
||
|
AnimationCurve.Linear(0,3.5f,24,3.5f),
|
||
|
AnimationCurve.Linear(0,3.5f,24,3.5f),
|
||
|
AnimationCurve.Linear(0,3.5f,24,3.5f),
|
||
|
AnimationCurve.Linear(0,3.5f,24,3.5f),
|
||
|
AnimationCurve.Linear(0,3.5f,24,3.5f),
|
||
|
AnimationCurve.Linear(0,3.5f,24,3.5f)
|
||
|
};
|
||
|
public List<AnimationCurve> SunDiskSizeCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,250.0f,24,250.0f),
|
||
|
AnimationCurve.Linear(0,250.0f,24,250.0f),
|
||
|
AnimationCurve.Linear(0,250.0f,24,250.0f),
|
||
|
AnimationCurve.Linear(0,250.0f,24,250.0f),
|
||
|
AnimationCurve.Linear(0,250.0f,24,250.0f),
|
||
|
AnimationCurve.Linear(0,250.0f,24,250.0f),
|
||
|
AnimationCurve.Linear(0,250.0f,24,250.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> SunDiskIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> SunDiskPropagationCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,-1.5f,24,-1.5f),
|
||
|
AnimationCurve.Linear(0,-1.5f,24,-1.5f),
|
||
|
AnimationCurve.Linear(0,-1.5f,24,-1.5f),
|
||
|
AnimationCurve.Linear(0,-1.5f,24,-1.5f),
|
||
|
AnimationCurve.Linear(0,-1.5f,24,-1.5f),
|
||
|
AnimationCurve.Linear(0,-1.5f,24,-1.5f),
|
||
|
AnimationCurve.Linear(0,-1.5f,24,-1.5f)
|
||
|
};
|
||
|
public List<AnimationCurve> MoonSizeCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> MoonColorPowerCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,2.15f,24,2.15f),
|
||
|
AnimationCurve.Linear(0,2.15f,24,2.15f),
|
||
|
AnimationCurve.Linear(0,2.15f,24,2.15f),
|
||
|
AnimationCurve.Linear(0,2.15f,24,2.15f),
|
||
|
AnimationCurve.Linear(0,2.15f,24,2.15f),
|
||
|
AnimationCurve.Linear(0,2.15f,24,2.15f),
|
||
|
AnimationCurve.Linear(0,2.15f,24,2.15f)
|
||
|
};
|
||
|
public List<AnimationCurve> StarsIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> StarsExtinctionCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f)
|
||
|
};
|
||
|
public List<AnimationCurve> MoonExtinctionCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f)
|
||
|
};
|
||
|
public List<AnimationCurve> MilkyWayIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> MilkyWayPowerCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,2.5f,24,2.5f),
|
||
|
AnimationCurve.Linear(0,2.5f,24,2.5f),
|
||
|
AnimationCurve.Linear(0,2.5f,24,2.5f),
|
||
|
AnimationCurve.Linear(0,2.5f,24,2.5f),
|
||
|
AnimationCurve.Linear(0,2.5f,24,2.5f),
|
||
|
AnimationCurve.Linear(0,2.5f,24,2.5f),
|
||
|
AnimationCurve.Linear(0,2.5f,24,2.5f)
|
||
|
};
|
||
|
public List<AnimationCurve> ExposureCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.5f,24,1.5f),
|
||
|
AnimationCurve.Linear(0,1.5f,24,1.5f),
|
||
|
AnimationCurve.Linear(0,1.5f,24,1.5f),
|
||
|
AnimationCurve.Linear(0,1.5f,24,1.5f),
|
||
|
AnimationCurve.Linear(0,1.5f,24,1.5f),
|
||
|
AnimationCurve.Linear(0,1.5f,24,1.5f),
|
||
|
AnimationCurve.Linear(0,1.5f,24,1.5f)
|
||
|
};
|
||
|
public List<AnimationCurve> NightSkyFarColorDistanceCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f),
|
||
|
AnimationCurve.Linear(0,0.5f,24,0.5f)
|
||
|
};
|
||
|
public List<AnimationCurve> NightSkyFarColorPowerCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f),
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f),
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f),
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f),
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f),
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f),
|
||
|
AnimationCurve.Linear(0,0.25f,24,0.25f)
|
||
|
};
|
||
|
// public List<Gradient> SunGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> SunsetGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> MoonGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> MoonBrightGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> NightGroundCloseGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> NightGroundFarGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
|
||
|
public int MoonEclipseShadow = 0;
|
||
|
public float Umbra = 0.95f;
|
||
|
public float UmbraSize = 0.25f;
|
||
|
public float Penumbra = 3.0f;
|
||
|
public float PenumbraSize = 0.5f;
|
||
|
public Color PenumbraColor = Color.red;
|
||
|
public float StarsScintillation = 5.5f;
|
||
|
private float scintRot = 0.0f;
|
||
|
public Vector3 MilkyWayPos;
|
||
|
private Matrix4x4 MilkyWayMatrix;
|
||
|
private Matrix4x4 NoiseRot;
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//==============================================Fog Tab==================================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
public bool LinearFog = true;
|
||
|
public float ScatteringFogDistance = 3.0f;
|
||
|
public float FogBlendPoint = 3.0f;
|
||
|
public float NormalFogDistance = 10.0f;
|
||
|
public float DenseFogIntensity = 0.0f;
|
||
|
public float DenseFogAltitude = -0.8f;
|
||
|
public bool UseUnityFog = false;
|
||
|
public int UnityFogModeIndex = 1;
|
||
|
public float UnityFogDensity = 1.0f;
|
||
|
public float UnityFogStart = 0.0f;
|
||
|
public float UnityFogEnd = 300.0f;
|
||
|
public List<Gradient> NormalFogGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> GlobalFogGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> DenseFogGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> UnityFogGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<AnimationCurve> ScatteringFogDistanceCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> FogBlendPointCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> NormalFogDistanceCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,10.0f,24,10.0f),
|
||
|
AnimationCurve.Linear(0,10.0f,24,10.0f),
|
||
|
AnimationCurve.Linear(0,10.0f,24,10.0f),
|
||
|
AnimationCurve.Linear(0,10.0f,24,10.0f),
|
||
|
AnimationCurve.Linear(0,10.0f,24,10.0f),
|
||
|
AnimationCurve.Linear(0,10.0f,24,10.0f),
|
||
|
AnimationCurve.Linear(0,10.0f,24,10.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> DenseFogIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,0.12f,24,0.12f),
|
||
|
AnimationCurve.Linear(0,0.12f,24,0.12f),
|
||
|
AnimationCurve.Linear(0,0.12f,24,0.12f),
|
||
|
AnimationCurve.Linear(0,0.12f,24,0.12f),
|
||
|
AnimationCurve.Linear(0,0.12f,24,0.12f),
|
||
|
AnimationCurve.Linear(0,0.12f,24,0.12f),
|
||
|
AnimationCurve.Linear(0,0.12f,24,0.12f)
|
||
|
};
|
||
|
public List<AnimationCurve> DenseFogAltitudeCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,-0.8f,24,-0.8f),
|
||
|
AnimationCurve.Linear(0,-0.8f,24,-0.8f),
|
||
|
AnimationCurve.Linear(0,-0.8f,24,-0.8f),
|
||
|
AnimationCurve.Linear(0,-0.8f,24,-0.8f),
|
||
|
AnimationCurve.Linear(0,-0.8f,24,-0.8f),
|
||
|
AnimationCurve.Linear(0,-0.8f,24,-0.8f),
|
||
|
AnimationCurve.Linear(0,-0.8f,24,-0.8f)
|
||
|
};
|
||
|
public List<AnimationCurve> UnityFogDensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> UnityFogStartCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> UnityFogEndCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,300.0f,24,300.0f),
|
||
|
AnimationCurve.Linear(0,300.0f,24,300.0f),
|
||
|
AnimationCurve.Linear(0,300.0f,24,300.0f),
|
||
|
AnimationCurve.Linear(0,300.0f,24,300.0f),
|
||
|
AnimationCurve.Linear(0,300.0f,24,300.0f),
|
||
|
AnimationCurve.Linear(0,300.0f,24,300.0f),
|
||
|
AnimationCurve.Linear(0,300.0f,24,300.0f)
|
||
|
};
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//============================================Cloud Tab==================================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
public int cloudModeIndex = 0;
|
||
|
private Shader noCloudsShader;
|
||
|
private Shader preRenderedShader;
|
||
|
private Shader proceduralCloudShader;
|
||
|
private float preRenderedCloudLongitude = 0.0f;
|
||
|
|
||
|
public List<Gradient> EdgeColorGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> DarkColorGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
|
||
|
public float CloudExtinction = 3.0f;
|
||
|
public float AlphaSaturation = 2.0f;
|
||
|
public float CloudDensity = 1.0f;
|
||
|
public float MoonBrightIntensity = 3.0f;
|
||
|
public float MoonBrightRange = 1.0f;
|
||
|
public float PreRenderedCloudAltitude = 0.05f;
|
||
|
public List<AnimationCurve> PreRenderedCloudAltitudeCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f),
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f),
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f),
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f),
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f),
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f),
|
||
|
AnimationCurve.Linear(0,0.05f,24,0.05f)
|
||
|
};
|
||
|
public List<AnimationCurve> CloudExtinctionCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> AlphaSaturationCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,2.0f,24,2.0f),
|
||
|
AnimationCurve.Linear(0,2.0f,24,2.0f),
|
||
|
AnimationCurve.Linear(0,2.0f,24,2.0f),
|
||
|
AnimationCurve.Linear(0,2.0f,24,2.0f),
|
||
|
AnimationCurve.Linear(0,2.0f,24,2.0f),
|
||
|
AnimationCurve.Linear(0,2.0f,24,2.0f),
|
||
|
AnimationCurve.Linear(0,2.0f,24,2.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> CloudDensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> MoonBrightIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f),
|
||
|
AnimationCurve.Linear(0,3.0f,24,3.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> MoonBrightRangeCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
//Wispy Clouds
|
||
|
public Texture2D WispyCloudTexture;
|
||
|
public List<Gradient> WispyDarknessGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> WispyBrightGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> WispyColorGradientColor = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public float WispyCovarage = 0.0f;
|
||
|
public float WispyCloudPosition = 0.0f;
|
||
|
public float WispyCloudSpeed = 0.0f;
|
||
|
public float WispyCloudDirection = 0.0f;
|
||
|
public List<AnimationCurve> WispyCovarageCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f),
|
||
|
AnimationCurve.Linear(0,0.0f,24,0.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> WispyCloudSpeedCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f),
|
||
|
AnimationCurve.Linear(0,5.0f,24,5.0f)
|
||
|
};
|
||
|
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//===========================================Ambient Tab=================================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
public bool useReflectionProbe = true;
|
||
|
public int ambientSourceIndex = 0;
|
||
|
public float AmbientIntensity = 1.0f;
|
||
|
public float ReflectionIntensity = 1.0f;
|
||
|
public int ReflectionBounces = 1;
|
||
|
public int ReflectionProbeRefreshMode = 1;
|
||
|
public int ReflectionProbeTimeSlicing = 2;
|
||
|
public float ReflectionProbeTimeToUpdate = 1.0f;
|
||
|
private float timeSinceLastUpdate = 0.0f;
|
||
|
public float ReflectionProbeIntensity = 1.0f;
|
||
|
public LayerMask ReflectionProbeCullingMask = 0;
|
||
|
public Vector3 ReflectionProbeSize = new Vector3 (10.0f, 10.0f, 10.0f);
|
||
|
public bool ForceProbeUpdateAtFirstFrame = true;
|
||
|
public List<AnimationCurve> AmbientIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> ReflectionIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> ReflectionBouncesCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1,24,1),
|
||
|
AnimationCurve.Linear(0,1,24,1),
|
||
|
AnimationCurve.Linear(0,1,24,1),
|
||
|
AnimationCurve.Linear(0,1,24,1),
|
||
|
AnimationCurve.Linear(0,1,24,1),
|
||
|
AnimationCurve.Linear(0,1,24,1),
|
||
|
AnimationCurve.Linear(0,1,24,1)
|
||
|
};
|
||
|
public List<AnimationCurve> ReflectionProbeIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<Gradient> AmbientColorGradient = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> SkyAmbientColorGradient = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> EquatorAmbientColorGradient = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> GroundAmbientColorGradient = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//===========================================Lighting Tab================================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
public float SunDirLightIntensity = 1.0f;
|
||
|
public float MoonDirLightIntensity= 1.0f;
|
||
|
public float SunFlareIntensity = 1.0f;
|
||
|
public List<AnimationCurve> SunDirLightIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> MoonDirLightIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<AnimationCurve> SunFlareIntensityCurve = new List<AnimationCurve>()
|
||
|
{
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f),
|
||
|
AnimationCurve.Linear(0,1.0f,24,1.0f)
|
||
|
};
|
||
|
public List<Gradient> SunDirLightColorGradient = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
public List<Gradient> MoonDirLightColorGradient = new List<Gradient>(){new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient(), new Gradient()};
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//===========================================Textures Tab================================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
public RenderTexture MoonTexture;
|
||
|
public Cubemap StarField;
|
||
|
public Cubemap StarNoise;
|
||
|
public Cubemap MilkyWay;
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//===========================================Options Tab=================================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
float getGradientTime;
|
||
|
float getCurveTime;
|
||
|
public bool skyUpdate = true;
|
||
|
public bool UseSunLensFlare = true;
|
||
|
public bool SkyHDR = false;
|
||
|
public bool showCurveValue = false;
|
||
|
public bool showGradientTime = true;
|
||
|
public int SpaceColorIndex = 0;
|
||
|
public Color CurveColorField = Color.yellow;
|
||
|
public float ColorCorrection = 1.0f;
|
||
|
public float WispyColorCorrection = 1.0f;
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//To get lights components
|
||
|
private Light SunLightComponent;
|
||
|
private Light MoonLightComponent;
|
||
|
private LensFlare SunFlareComponent;
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//============================================Output Tab=================================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
public List<AnimationCurve> OutputCurveList = new List<AnimationCurve>();
|
||
|
public List<Gradient> OutputGradientList = new List<Gradient>();//{new Gradient()};
|
||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
//==========================================ends VARIABLES===============================================
|
||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
|
||
|
//Use this for initialization.
|
||
|
void Start () {
|
||
|
MoonTexture.useMipMap = true;
|
||
|
//Get lights components
|
||
|
if (UseSunLensFlare){
|
||
|
SunFlareComponent = Sun_DirectionalLight.GetComponent<LensFlare> ();
|
||
|
}
|
||
|
SunLightComponent = Sun_DirectionalLight.GetComponent<Light> ();
|
||
|
MoonLightComponent = Moon_DirectionalLight.GetComponent<Light> ();
|
||
|
|
||
|
//Some updates
|
||
|
SkyUpdate();
|
||
|
SetSunPosition();
|
||
|
SetTime (TIME_of_DAY, DAY_CYCLE);
|
||
|
|
||
|
// First update the Reflection Probe
|
||
|
if (useReflectionProbe && ReflectionProbeRefreshMode == 2) {
|
||
|
if (ForceProbeUpdateAtFirstFrame) {
|
||
|
AzureReflectionProbe.refreshMode = UnityEngine.Rendering.ReflectionProbeRefreshMode.EveryFrame; // To update in the first frame.
|
||
|
AzureReflectionProbe.RenderProbe (null);
|
||
|
AzureReflectionProbe.refreshMode = UnityEngine.Rendering.ReflectionProbeRefreshMode.ViaScripting;// Back to previous refresh mode.
|
||
|
} else {
|
||
|
AzureReflectionProbe.RenderProbe (null);
|
||
|
}
|
||
|
}
|
||
|
AzureReflectionProbe.cullingMask = ReflectionProbeCullingMask;
|
||
|
|
||
|
// Only in gameplay
|
||
|
if (Application.isPlaying) {
|
||
|
ClearList ();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//Update is called once per frame.
|
||
|
void Update () {
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
// Update the sky equations every frame ?
|
||
|
if (skyUpdate)
|
||
|
{
|
||
|
SkyUpdate ();
|
||
|
} else
|
||
|
{
|
||
|
// getGradientTime = TIME_of_DAY / 24;
|
||
|
getCurveTime = TIME_of_DAY;
|
||
|
if (SetTime_By_Curve)
|
||
|
{
|
||
|
getCurveTime = TIME_of_DAY_by_CURVE;
|
||
|
// getGradientTime = TIME_of_DAY_by_CURVE / 24;
|
||
|
}
|
||
|
WispyCloudPosition -= WispyCloudSpeed * (1e-3f * Time.deltaTime);
|
||
|
Sky_Material.SetFloat ("_ProceduralCloudSpeed", WispyCloudPosition);
|
||
|
StarsIntensity = StarsIntensityCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
Sky_Material.SetFloat ("_StarsIntensity", StarsIntensity);
|
||
|
}
|
||
|
// Needs constant update
|
||
|
Sky_Material.SetVector ("_SunDir" , -Sun_DirectionalLight.transform.forward );
|
||
|
Sky_Material.SetVector ("_MoonDir", -Moon_DirectionalLight.transform.forward );
|
||
|
Sky_Material.SetMatrix ("_MoonMatrix", Moon_DirectionalLight.transform.worldToLocalMatrix);
|
||
|
Sky_Material.SetMatrix ("_SunMatrix", Sun_DirectionalLight.transform.worldToLocalMatrix);
|
||
|
Fog_Material.SetVector ("_SunDir" , -Sun_DirectionalLight.transform.forward );
|
||
|
Fog_Material.SetVector ("_MoonDir", -Moon_DirectionalLight.transform.forward );
|
||
|
Fog_Material.SetMatrix ("_MoonMatrix", Moon_DirectionalLight.transform.worldToLocalMatrix);
|
||
|
|
||
|
if (cloudModeIndex == 1) {
|
||
|
preRenderedCloudLongitude = (1.0f / 360) * (Longitude + 180);
|
||
|
Sky_Material.SetFloat ("_Longitude", preRenderedCloudLongitude);
|
||
|
//To know if is morning or afternoon.
|
||
|
if (TIME_of_DAY >= 12.0f) {
|
||
|
Sky_Material.SetInt ("_Rise_or_Down", 0);
|
||
|
} else {
|
||
|
Sky_Material.SetInt ("_Rise_or_Down", 1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Moon_Material.SetVector ("_SunDir" , -Sun_DirectionalLight.transform.forward );
|
||
|
//For rotation of the noise texture in shader to apply star scintillation
|
||
|
if (StarsScintillation > 0.0f)
|
||
|
{
|
||
|
scintRot += StarsScintillation * Time.deltaTime;
|
||
|
Quaternion rot = Quaternion.Euler (scintRot, scintRot, scintRot);
|
||
|
NoiseRot = Matrix4x4.TRS (Vector3.zero, rot, new Vector3 (1, 1, 1));
|
||
|
Sky_Material.SetMatrix ("_NoiseMatrix", NoiseRot);
|
||
|
}
|
||
|
//Set Milky Way Position
|
||
|
Quaternion milkyWayRot = Quaternion.Euler (MilkyWayPos);
|
||
|
MilkyWayMatrix = Matrix4x4.TRS (Vector3.zero, milkyWayRot, new Vector3 (1, 1, 1));
|
||
|
Sky_Material.SetMatrix ("_MilkyWayMatrix", MilkyWayMatrix);
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
/////////////////
|
||
|
// Time of Day //
|
||
|
sun_v3.x = SetSunPosition();
|
||
|
sun_v3.y = Longitude;// + azure_East;
|
||
|
if (TIME_of_DAY >= 24.0f) {
|
||
|
if (DAY_of_WEEK < (NUMBER_of_DAYS-1)) {
|
||
|
DAY_of_WEEK += 1;
|
||
|
} else {
|
||
|
DAY_of_WEEK = 0;
|
||
|
}
|
||
|
TIME_of_DAY = 0.0f;
|
||
|
}
|
||
|
if (TIME_of_DAY < 0.0f) {
|
||
|
if (DAY_of_WEEK > 0) {
|
||
|
DAY_of_WEEK -= 1;
|
||
|
} else {
|
||
|
DAY_of_WEEK = NUMBER_of_DAYS - 1;
|
||
|
}
|
||
|
TIME_of_DAY = 24.0f;
|
||
|
}
|
||
|
Sun_DirectionalLight.transform.localEulerAngles = sun_v3;
|
||
|
|
||
|
// Only in gameplay
|
||
|
if (Application.isPlaying)
|
||
|
{
|
||
|
// Pass the time of day //
|
||
|
TIME_of_DAY += PassTime * Time.deltaTime;
|
||
|
// Update the Reflection Probe
|
||
|
if (useReflectionProbe) {
|
||
|
UpdateReflections ();
|
||
|
}
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
// Only in Editor
|
||
|
#if UNITY_EDITOR
|
||
|
if (!Application.isPlaying)
|
||
|
{
|
||
|
// Get lights components
|
||
|
if (UseSunLensFlare){
|
||
|
SunFlareComponent = Sun_DirectionalLight.GetComponent<LensFlare> ();
|
||
|
}
|
||
|
SunLightComponent = Sun_DirectionalLight.GetComponent<Light> ();
|
||
|
MoonLightComponent = Moon_DirectionalLight.GetComponent<Light> ();
|
||
|
|
||
|
// See "Reflection Probe Intensity" changes in the Editor
|
||
|
ReflectionProbeIntensity = ReflectionProbeIntensityCurve [DAY_of_WEEK].Evaluate (TIME_of_DAY);
|
||
|
AzureReflectionProbe.intensity = ReflectionProbeIntensity;
|
||
|
//Update the sky in Editor
|
||
|
SkyUpdate ();
|
||
|
}
|
||
|
AzureReflectionProbe.cullingMask = ReflectionProbeCullingMask;
|
||
|
#endif
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
SunLightIntensity ();
|
||
|
MoonLightIntensity ();
|
||
|
SetAmbient ();
|
||
|
if (UseUnityFog) {
|
||
|
SetUnityFog ();
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
TIME_of_DAY_by_CURVE = DayNightLengthCurve.Evaluate(TIME_of_DAY);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
//===============================================METHODS=================================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
// Get Beta Rayleight.
|
||
|
private Vector3 BetaRay() {
|
||
|
Vector3 converted_lambda = lambda * 1.0e-9f; // Converting the wavelength values given in Inpector for real scale used in formula.
|
||
|
Vector3 Br;
|
||
|
|
||
|
// The part (6.0f - 7.0f * pn) and (6.0f + 3.0f * pn), they are not included in this equation because there is no significant visual changes in the sky.
|
||
|
////////////////
|
||
|
// Without pn //
|
||
|
//Br.x = ((8.0f * Mathf.Pow(pi, 3.0f) * (Mathf.Pow(Mathf.Pow(n, 2.0f) - 1.0f, 2.0f)) ) / (3.0f * N * Mathf.Pow(converted_lambda.x, 4.0f)))*SkyCoeff;
|
||
|
//Br.y = ((8.0f * Mathf.Pow(pi, 3.0f) * (Mathf.Pow(Mathf.Pow(n, 2.0f) - 1.0f, 2.0f)) ) / (3.0f * N * Mathf.Pow(converted_lambda.y, 4.0f)))*SkyCoeff;
|
||
|
//Br.z = ((8.0f * Mathf.Pow(pi, 3.0f) * (Mathf.Pow(Mathf.Pow(n, 2.0f) - 1.0f, 2.0f)) ) / (3.0f * N * Mathf.Pow(converted_lambda.z, 4.0f)))*SkyCoeff;
|
||
|
|
||
|
///////////////////////
|
||
|
// Original equation //
|
||
|
Br.x = (((8.0f * Mathf.Pow(pi, 3.0f) * (Mathf.Pow(Mathf.Pow(n, 2.0f) - 1.0f, 2.0f)))*(6.0f+3.0f*pn) ) / ((3.0f * N * Mathf.Pow(converted_lambda.x, 4.0f))*(6.0f-7.0f*pn) ))*SkyCoeff;
|
||
|
Br.y = (((8.0f * Mathf.Pow(pi, 3.0f) * (Mathf.Pow(Mathf.Pow(n, 2.0f) - 1.0f, 2.0f)))*(6.0f+3.0f*pn) ) / ((3.0f * N * Mathf.Pow(converted_lambda.y, 4.0f))*(6.0f-7.0f*pn) ))*SkyCoeff;
|
||
|
Br.z = (((8.0f * Mathf.Pow(pi, 3.0f) * (Mathf.Pow(Mathf.Pow(n, 2.0f) - 1.0f, 2.0f)))*(6.0f+3.0f*pn) ) / ((3.0f * N * Mathf.Pow(converted_lambda.z, 4.0f))*(6.0f-7.0f*pn) ))*SkyCoeff;
|
||
|
|
||
|
return Br;
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
// Get Beta Mie.
|
||
|
private Vector3 BetaMie() {
|
||
|
float c = (0.2f * Turbidity ) * 10.0f;
|
||
|
Vector3 Bm;
|
||
|
Bm.x = (434.0f * c * pi * Mathf.Pow((2.0f * pi) / lambda.x, 2.0f) * K.x);
|
||
|
Bm.y = (434.0f * c * pi * Mathf.Pow((2.0f * pi) / lambda.y, 2.0f) * K.y);
|
||
|
Bm.z = (434.0f * c * pi * Mathf.Pow((2.0f * pi) / lambda.z, 2.0f) * K.z);
|
||
|
|
||
|
Bm.x=Mathf.Pow(Bm.x,-1.0f);
|
||
|
Bm.y=Mathf.Pow(Bm.y,-1.0f);
|
||
|
Bm.z=Mathf.Pow(Bm.z,-1.0f);
|
||
|
|
||
|
return Bm;
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
// Get (3.0/(16.0*pi)) for rayleight phase function.
|
||
|
private float pi316() {
|
||
|
return 3.0f/(16.0f*pi);
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
// Get (1.0/(4.0*pi)) for mie phase function.
|
||
|
private float pi14() {
|
||
|
return 1.0f/(4.0f*pi);
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
// Get mie g constants
|
||
|
private Vector3 GetMieG() {
|
||
|
return new Vector3(1.0f-g*g,1.0f+g*g,2.0f*g);
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
public float SetSunPosition() {
|
||
|
float ret;
|
||
|
if (SetTime_By_Curve) {
|
||
|
ret = ((TIME_of_DAY_by_CURVE + UTC) * 360.0f / 24.0f) - 90.0f;
|
||
|
} else {
|
||
|
ret = ((TIME_of_DAY + UTC) * 360.0f / 24.0f) - 90.0f;
|
||
|
}
|
||
|
return ret;
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
// Set "Time of Day" and "Day Duration"
|
||
|
public void SetTime(float hour, float dayDuration) {
|
||
|
TIME_of_DAY = hour;
|
||
|
DAY_CYCLE = dayDuration;
|
||
|
if (dayDuration > 0.0f) PassTime = (24.0f / 60.0f) / DAY_CYCLE; else PassTime = 0.0f;
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
// Get "Time of Day""
|
||
|
public float GetTime() {
|
||
|
float angle = Sun_DirectionalLight.transform.localEulerAngles.x;
|
||
|
return angle / (360.0f / 24.0f);
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
private void SunLightIntensity()
|
||
|
{
|
||
|
if (SunLightComponent != null)
|
||
|
{
|
||
|
SunDirLightIntensity = SunDirLightIntensityCurve[DAY_of_WEEK].Evaluate(TIME_of_DAY);
|
||
|
SunLightComponent.intensity = SunDirLightIntensity+Lightincrement;
|
||
|
if(SunLightComponent.intensity <= 0)
|
||
|
{
|
||
|
SunLightComponent.enabled = false;
|
||
|
}else { SunLightComponent.enabled = true; }
|
||
|
|
||
|
if (SunFlareComponent != null)
|
||
|
{
|
||
|
if (UseSunLensFlare)
|
||
|
{
|
||
|
SunFlareComponent.enabled = true;
|
||
|
SunFlareIntensity = SunFlareIntensityCurve[DAY_of_WEEK].Evaluate(TIME_of_DAY);
|
||
|
SunFlareComponent.brightness = SunFlareIntensity;
|
||
|
}else { SunFlareComponent.enabled =false; }
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
private void MoonLightIntensity()
|
||
|
{
|
||
|
if (MoonLightComponent != null)
|
||
|
{
|
||
|
MoonDirLightIntensity = MoonDirLightIntensityCurve[DAY_of_WEEK].Evaluate(TIME_of_DAY);
|
||
|
MoonLightComponent.intensity = MoonDirLightIntensity;
|
||
|
if(MoonLightComponent.intensity <= 0)
|
||
|
{
|
||
|
MoonLightComponent.enabled = false;
|
||
|
}else { MoonLightComponent.enabled = true; }
|
||
|
}
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
private void SetAmbient()
|
||
|
{
|
||
|
switch (ambientSourceIndex)
|
||
|
{
|
||
|
case 0:
|
||
|
AmbientIntensity = AmbientIntensityCurve[DAY_of_WEEK].Evaluate (TIME_of_DAY);
|
||
|
RenderSettings.ambientIntensity = AmbientIntensity;
|
||
|
|
||
|
break;
|
||
|
|
||
|
case 1:
|
||
|
AmbientIntensity = AmbientIntensityCurve[DAY_of_WEEK].Evaluate (TIME_of_DAY);
|
||
|
RenderSettings.ambientIntensity = AmbientIntensity;
|
||
|
RenderSettings.ambientSkyColor = SkyAmbientColorGradient[DAY_of_WEEK].Evaluate(TIME_of_DAY/24);
|
||
|
RenderSettings.ambientEquatorColor = EquatorAmbientColorGradient[DAY_of_WEEK].Evaluate(TIME_of_DAY/24);
|
||
|
RenderSettings.ambientGroundColor = GroundAmbientColorGradient[DAY_of_WEEK].Evaluate(TIME_of_DAY/24);
|
||
|
|
||
|
break;
|
||
|
|
||
|
case 2:
|
||
|
AmbientIntensity = AmbientIntensityCurve[DAY_of_WEEK].Evaluate (TIME_of_DAY);
|
||
|
RenderSettings.ambientIntensity = AmbientIntensity;
|
||
|
RenderSettings.ambientSkyColor = AmbientColorGradient[DAY_of_WEEK].Evaluate(TIME_of_DAY/24);
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
ReflectionIntensity = ReflectionIntensityCurve[DAY_of_WEEK].Evaluate (TIME_of_DAY);
|
||
|
RenderSettings.reflectionIntensity = ReflectionIntensity;
|
||
|
ReflectionBounces = (int)ReflectionBouncesCurve[DAY_of_WEEK].Evaluate (TIME_of_DAY);
|
||
|
RenderSettings.reflectionBounces = ReflectionBounces;
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
private void SetUnityFog()
|
||
|
{
|
||
|
getGradientTime = TIME_of_DAY / 24;
|
||
|
getCurveTime = TIME_of_DAY;
|
||
|
if (SetTime_By_Curve) {
|
||
|
getCurveTime = TIME_of_DAY_by_CURVE;
|
||
|
getGradientTime = TIME_of_DAY_by_CURVE / 24;
|
||
|
}
|
||
|
|
||
|
RenderSettings.fogColor = UnityFogGradientColor[DAY_of_WEEK].Evaluate (getGradientTime);
|
||
|
UnityFogDensity = UnityFogDensityCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
UnityFogStart = UnityFogStartCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
UnityFogEnd = UnityFogEndCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
|
||
|
|
||
|
RenderSettings.fogDensity = UnityFogDensity * 1e-4f;
|
||
|
RenderSettings.fogStartDistance = UnityFogStart;
|
||
|
RenderSettings.fogEndDistance = UnityFogEnd;
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
private void UpdateReflections()
|
||
|
{
|
||
|
timeSinceLastUpdate += Time.deltaTime;
|
||
|
if (ReflectionProbeRefreshMode == 2) {
|
||
|
if (timeSinceLastUpdate >= ReflectionProbeTimeToUpdate) {
|
||
|
AzureReflectionProbe.RenderProbe (null);
|
||
|
timeSinceLastUpdate = 0;
|
||
|
}
|
||
|
}
|
||
|
ReflectionProbeIntensity = ReflectionProbeIntensityCurve [DAY_of_WEEK].Evaluate (TIME_of_DAY);
|
||
|
AzureReflectionProbe.intensity = ReflectionProbeIntensity;
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
public void ChangeShader(int shader)
|
||
|
{
|
||
|
AzureSkyCloudAnimation animComponent = GetComponent<AzureSkyCloudAnimation> ();
|
||
|
switch (shader) {
|
||
|
case 0:
|
||
|
noCloudsShader = Shader.Find ("azure[Sky]/azure[Sky]_NoClouds");
|
||
|
if (animComponent) {
|
||
|
animComponent.enabled = false;
|
||
|
}
|
||
|
if (Sky_Material.shader != noCloudsShader)
|
||
|
Sky_Material.shader = noCloudsShader;
|
||
|
break;
|
||
|
case 1:
|
||
|
preRenderedShader = Shader.Find ("azure[Sky]/azure[Sky]_PreRenderedClouds");
|
||
|
if (animComponent) {
|
||
|
animComponent.enabled = true;
|
||
|
}
|
||
|
if(Sky_Material.shader != preRenderedShader)
|
||
|
Sky_Material.shader = preRenderedShader;
|
||
|
break;
|
||
|
case 2:
|
||
|
proceduralCloudShader = Shader.Find ("azure[Sky]/azure[Sky]_ProceduralClouds");
|
||
|
if (animComponent) {
|
||
|
animComponent.enabled = false;
|
||
|
}
|
||
|
if(Sky_Material.shader != proceduralCloudShader)
|
||
|
Sky_Material.shader = proceduralCloudShader;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
/// <summary>
|
||
|
/// Get Azure[Sky] curve output based on value of "time of day".
|
||
|
/// </summary>
|
||
|
/// <returns>float.</returns>
|
||
|
/// <param name="index">Index.</param>
|
||
|
public float AzureSkyGetCurveOutput(int index)
|
||
|
{
|
||
|
if (SetTime_By_Curve) {
|
||
|
return OutputCurveList [index].Evaluate (TIME_of_DAY_by_CURVE);
|
||
|
} else { return OutputCurveList [index].Evaluate (TIME_of_DAY); }
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// Get Azure[Sky] gradient output based on value of "time of day"
|
||
|
/// </summary>
|
||
|
/// <returns>Color.</returns>
|
||
|
/// <param name="index">Index.</param>
|
||
|
public Color AzureSkyGetGradientOutput(int index)
|
||
|
{
|
||
|
float getColorKey;
|
||
|
if (SetTime_By_Curve) {
|
||
|
getColorKey = TIME_of_DAY_by_CURVE / 24;
|
||
|
} else { getColorKey = TIME_of_DAY / 24; }
|
||
|
return OutputGradientList[index].Evaluate(getColorKey);
|
||
|
}
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
//=======================================================================================================
|
||
|
//-------------------------------------------------------------------------------------------------------
|
||
|
// Update the sky properties
|
||
|
void SkyUpdate()
|
||
|
{
|
||
|
float getGradientTime = TIME_of_DAY / 24;
|
||
|
float getCurveTime = TIME_of_DAY;
|
||
|
if (SetTime_By_Curve) {
|
||
|
getCurveTime = TIME_of_DAY_by_CURVE;
|
||
|
getGradientTime = TIME_of_DAY_by_CURVE / 24;
|
||
|
}
|
||
|
//Get Curves Value
|
||
|
RayCoeff = RayCoeffCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
MieCoeff = MieCoeffCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
Turbidity = TurbidityCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
g = gCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
lambda.x = LambdaCurveR[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
lambda.y = LambdaCurveG[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
lambda.z = LambdaCurveB[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
SkyCoeff = SkyCoeffCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
SunIntensity = SunIntensityCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
MoonIntensity = MoonIntensityCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
Kr = KrCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
Km = KmCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
Altitude = AltitudeCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
|
||
|
SkyLuminance = SkyLuminanceCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
SkyDarkness = SkyDarknessCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
SunsetPower = SunsetPowerCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
SunDiskSize = SunDiskSizeCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
SunDiskIntensity = SunDiskIntensityCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
SunDiskPropagation= SunDiskPropagationCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
MoonSize = MoonSizeCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
StarsIntensity = StarsIntensityCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
StarsExtinction = StarsExtinctionCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
MoonExtinction = MoonExtinctionCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
MilkyWayIntensity = MilkyWayIntensityCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
MilkyWayPower = MilkyWayPowerCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
Exposure = ExposureCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
|
||
|
MoonColorPower = MoonColorPowerCurve [DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
|
||
|
NightSkyFarColorDistance = NightSkyFarColorDistanceCurve [DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
NightSkyFarColorPower = NightSkyFarColorPowerCurve [DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
|
||
|
ScatteringFogDistance = ScatteringFogDistanceCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
FogBlendPoint = FogBlendPointCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
NormalFogDistance = NormalFogDistanceCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
DenseFogIntensity = DenseFogIntensityCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
DenseFogAltitude = DenseFogAltitudeCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
|
||
|
//////////////////
|
||
|
// SKY MATERIAL //
|
||
|
Sky_Material.SetVector ("_Br", BetaRay () * RayCoeff);
|
||
|
Sky_Material.SetVector ("_Br2", BetaRay () * 3.0f);
|
||
|
Sky_Material.SetVector ("_Bm", BetaMie () * MieCoeff);
|
||
|
Sky_Material.SetVector ("_Brm", BetaRay () * RayCoeff + BetaMie () * MieCoeff);
|
||
|
Sky_Material.SetVector ("_mieG", GetMieG ());
|
||
|
Sky_Material.SetFloat ("_SunIntensity", SunIntensity);
|
||
|
Sky_Material.SetFloat ("_MoonIntensity", MoonIntensity);
|
||
|
Sky_Material.SetFloat ("_Kr", Kr);
|
||
|
Sky_Material.SetFloat ("_Km", Km);
|
||
|
Sky_Material.SetFloat ("_Altitude", Altitude);
|
||
|
Sky_Material.SetFloat ("_pi316", pi316 ());
|
||
|
Sky_Material.SetFloat ("_pi14", pi14 ());
|
||
|
Sky_Material.SetFloat ("_pi", pi);
|
||
|
|
||
|
Sky_Material.SetFloat ("_Exposure", Exposure);
|
||
|
Sky_Material.SetFloat ("_SkyLuminance", SkyLuminance);
|
||
|
Sky_Material.SetFloat ("_SkyDarkness", SkyDarkness);
|
||
|
Sky_Material.SetFloat ("_SunsetPower", SunsetPower);
|
||
|
Sky_Material.SetFloat ("_SunDiskSize", SunDiskSize);
|
||
|
Sky_Material.SetFloat ("_SunDiskIntensity", SunDiskIntensity);
|
||
|
Sky_Material.SetFloat ("_SunDiskPropagation", SunDiskPropagation);
|
||
|
Sky_Material.SetFloat ("_MoonSize", MoonSize);
|
||
|
Sky_Material.SetFloat ("_StarsIntensity", StarsIntensity);
|
||
|
Sky_Material.SetFloat ("_StarsExtinction", StarsExtinction);
|
||
|
Sky_Material.SetFloat ("_MoonExtinction", MoonExtinction);
|
||
|
Sky_Material.SetFloat ("_MilkyWayIntensity", MilkyWayIntensity);
|
||
|
Sky_Material.SetFloat ("_MilkyWayPower", MilkyWayPower);
|
||
|
Sky_Material.SetFloat ("_MoonEclipseShadow", MoonEclipseShadow);
|
||
|
|
||
|
// Sky_Material.SetColor ("_SunColor", SunGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
Sky_Material.SetColor ("_SunsetColor", SunsetGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
Sky_Material.SetColor ("_MoonBrightColor", MoonBrightGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
Sky_Material.SetColor ("_GroundCloseColor", NightGroundCloseGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
Sky_Material.SetColor ("_GroundFarColor", NightGroundFarGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
|
||
|
Sky_Material.SetFloat ("_FarColorDistance", NightSkyFarColorDistance);
|
||
|
Sky_Material.SetFloat ("_FarColorIntensity", NightSkyFarColorPower);
|
||
|
|
||
|
Sky_Material.SetTexture ("_MoonSampler", MoonTexture);
|
||
|
Sky_Material.SetInt ("_MoonEclipseShadow", MoonEclipseShadow);
|
||
|
Sky_Material.SetFloat ("_Umbra", Umbra);
|
||
|
Sky_Material.SetFloat ("_UmbraSize", UmbraSize);
|
||
|
Sky_Material.SetFloat ("_Penumbra", Penumbra);
|
||
|
Sky_Material.SetFloat ("_PenumbraSize", PenumbraSize);
|
||
|
Sky_Material.SetColor ("_PenumbraColor", PenumbraColor);
|
||
|
|
||
|
|
||
|
Sky_Material.SetTexture ("_StarField", StarField);
|
||
|
Sky_Material.SetTexture ("_StarNoise", StarNoise);
|
||
|
Sky_Material.SetTexture ("_MilkyWay", MilkyWay);
|
||
|
|
||
|
Sky_Material.SetFloat ("_ColorCorrection", ColorCorrection);
|
||
|
|
||
|
|
||
|
//////////////////
|
||
|
// FOG MATERIAL //
|
||
|
Fog_Material.SetVector ("_Br", BetaRay () * RayCoeff);
|
||
|
Fog_Material.SetVector ("_Br2", BetaRay () * 3.0f);
|
||
|
Fog_Material.SetVector ("_Bm", BetaMie () * MieCoeff);
|
||
|
Fog_Material.SetVector ("_Brm", BetaRay () * RayCoeff + BetaMie () * MieCoeff);
|
||
|
Fog_Material.SetVector ("_mieG", GetMieG ());
|
||
|
Fog_Material.SetFloat ("_SunIntensity", SunIntensity);
|
||
|
Fog_Material.SetFloat ("_MoonIntensity", MoonIntensity);
|
||
|
Fog_Material.SetFloat ("_Kr", Kr);
|
||
|
Fog_Material.SetFloat ("_Km", Km);
|
||
|
Fog_Material.SetFloat ("_Altitude", Altitude);
|
||
|
Fog_Material.SetFloat ("_pi316", pi316 ());
|
||
|
Fog_Material.SetFloat ("_pi14", pi14 ());
|
||
|
Fog_Material.SetFloat ("_pi", pi);
|
||
|
|
||
|
Fog_Material.SetFloat ("_Exposure", Exposure);
|
||
|
Fog_Material.SetFloat ("_SkyLuminance", SkyLuminance);
|
||
|
Fog_Material.SetFloat ("_SkyDarkness", SkyDarkness);
|
||
|
Fog_Material.SetFloat ("_SunsetPower", SunsetPower);
|
||
|
|
||
|
Fog_Material.SetFloat ("_ColorCorrection", ColorCorrection);
|
||
|
|
||
|
Fog_Material.SetColor ("_SunsetColor", SunsetGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
Fog_Material.SetColor ("_MoonBrightColor", MoonBrightGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
Fog_Material.SetColor ("_GroundCloseColor", NightGroundCloseGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
Fog_Material.SetColor ("_GroundFarColor", NightGroundFarGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
|
||
|
Fog_Material.SetFloat ("_FarColorDistance", NightSkyFarColorDistance);
|
||
|
Fog_Material.SetFloat ("_FarColorIntensity", NightSkyFarColorPower);
|
||
|
|
||
|
Fog_Material.SetFloat ("_ScatteringFogDistance", ScatteringFogDistance);
|
||
|
Fog_Material.SetFloat ("_BlendFogDistance", FogBlendPoint);
|
||
|
Fog_Material.SetFloat ("_NormalFogDistance", NormalFogDistance);
|
||
|
Fog_Material.SetFloat ("_DenseFogIntensity", DenseFogIntensity);
|
||
|
Fog_Material.SetFloat ("_DenseFogAltitude", DenseFogAltitude);
|
||
|
Fog_Material.SetColor ("_DenseFogColor", DenseFogGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
|
||
|
Fog_Material.SetColor ("_NormalFogColor", NormalFogGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
Fog_Material.SetColor ("_GlobalColor", GlobalFogGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
if (LinearFog) {
|
||
|
Fog_Material.SetFloat ("_LinearFog", 0.45f);
|
||
|
} else {
|
||
|
Fog_Material.SetFloat ("_LinearFog", 1.0f);
|
||
|
}
|
||
|
|
||
|
|
||
|
/////////
|
||
|
//Cloud//
|
||
|
switch (cloudModeIndex) {
|
||
|
case 0:
|
||
|
|
||
|
break;
|
||
|
case 1://Pre Rendered Clouds
|
||
|
Sky_Material.SetColor ("_EdgeColor", EdgeColorGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
Sky_Material.SetColor ("_DarkColor", DarkColorGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
|
||
|
CloudExtinction = CloudExtinctionCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
AlphaSaturation = AlphaSaturationCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
CloudDensity = CloudDensityCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
MoonBrightIntensity = MoonBrightIntensityCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
MoonBrightRange = MoonBrightRangeCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
PreRenderedCloudAltitude = PreRenderedCloudAltitudeCurve[DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
|
||
|
Sky_Material.SetFloat ("_CloudExtinction", CloudExtinction);
|
||
|
Sky_Material.SetFloat ("_AlphaSaturation", AlphaSaturation);
|
||
|
Sky_Material.SetFloat ("_CloudDensity", CloudDensity);
|
||
|
Sky_Material.SetFloat ("_MoonBrightIntensity", MoonBrightIntensity);
|
||
|
Sky_Material.SetFloat ("_MoonBrightRange", MoonBrightRange);
|
||
|
Sky_Material.SetFloat ("_CloudAltitude", PreRenderedCloudAltitude);
|
||
|
break;
|
||
|
case 2://Procedural Wispy Clouds
|
||
|
Sky_Material.SetColor ("_WispyDarkness", WispyDarknessGradientColor [DAY_of_WEEK].Evaluate (getGradientTime));
|
||
|
Sky_Material.SetColor ("_WispyBright", WispyBrightGradientColor [DAY_of_WEEK].Evaluate (getGradientTime));
|
||
|
Sky_Material.SetColor ("_WispyColor", WispyColorGradientColor [DAY_of_WEEK].Evaluate (getGradientTime));
|
||
|
|
||
|
WispyCovarage = WispyCovarageCurve [DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
WispyCloudSpeed = WispyCloudSpeedCurve [DAY_of_WEEK].Evaluate (getCurveTime);
|
||
|
|
||
|
Sky_Material.SetFloat ("_WispyCovarage", WispyCovarage);
|
||
|
Sky_Material.SetTexture ("_WispyCloudTexture", WispyCloudTexture);
|
||
|
|
||
|
WispyCloudPosition -= WispyCloudSpeed * (1e-3f * Time.deltaTime);
|
||
|
Sky_Material.SetFloat ("_ProceduralCloudSpeed", WispyCloudPosition);
|
||
|
|
||
|
Sky_Material.SetFloat ("_WispyCloudDirection", WispyCloudDirection);
|
||
|
Sky_Material.SetFloat ("_WispyColorCorrection", WispyColorCorrection);
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
|
||
|
/////////////////
|
||
|
//Moon Material//
|
||
|
Moon_Material.SetColor ("_MoonColor", MoonGradientColor[DAY_of_WEEK].Evaluate(getGradientTime));
|
||
|
Moon_Material.SetFloat ("_LightIntensity", MoonColorPower);
|
||
|
|
||
|
// General Settings //
|
||
|
if (SkyHDR)
|
||
|
{
|
||
|
Sky_Material.DisableKeyword ("HDR_OFF");
|
||
|
Sky_Material.EnableKeyword ("HDR_ON");
|
||
|
Fog_Material.DisableKeyword ("HDR_OFF");
|
||
|
Fog_Material.EnableKeyword ("HDR_ON");
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
Sky_Material.EnableKeyword ("HDR_OFF");
|
||
|
Sky_Material.DisableKeyword ("HDR_ON");
|
||
|
Fog_Material.EnableKeyword ("HDR_OFF");
|
||
|
Fog_Material.DisableKeyword ("HDR_ON");
|
||
|
}
|
||
|
}
|
||
|
void ClearList()
|
||
|
{
|
||
|
for (int i = NUMBER_of_DAYS; i < 7; i++) {
|
||
|
//Scattering
|
||
|
LambdaCurveR.RemoveAt (NUMBER_of_DAYS);
|
||
|
LambdaCurveG.RemoveAt (NUMBER_of_DAYS);
|
||
|
LambdaCurveB.RemoveAt (NUMBER_of_DAYS);
|
||
|
RayCoeffCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
MieCoeffCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
TurbidityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
gCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
SkyCoeffCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
SunIntensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
MoonIntensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
KrCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
KmCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
AltitudeCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
//Sky Settings
|
||
|
SkyLuminanceCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
SkyDarknessCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
SunsetPowerCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
SunDiskSizeCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
SunDiskIntensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
SunDiskPropagationCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
MoonSizeCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
MoonColorPowerCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
StarsIntensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
StarsExtinctionCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
MilkyWayIntensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
MilkyWayPowerCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
ExposureCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
NightSkyFarColorDistanceCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
NightSkyFarColorPowerCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
SunsetGradientColor.RemoveAt (NUMBER_of_DAYS);
|
||
|
MoonGradientColor.RemoveAt (NUMBER_of_DAYS);
|
||
|
MoonBrightGradientColor.RemoveAt (NUMBER_of_DAYS);
|
||
|
NightGroundCloseGradientColor.RemoveAt (NUMBER_of_DAYS);
|
||
|
NightGroundFarGradientColor.RemoveAt (NUMBER_of_DAYS);
|
||
|
//Fog
|
||
|
NormalFogGradientColor.RemoveAt (NUMBER_of_DAYS);
|
||
|
GlobalFogGradientColor.RemoveAt (NUMBER_of_DAYS);
|
||
|
ScatteringFogDistanceCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
FogBlendPointCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
NormalFogDistanceCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
//Pre-Rendered Clouds
|
||
|
EdgeColorGradientColor.RemoveAt (NUMBER_of_DAYS);
|
||
|
DarkColorGradientColor.RemoveAt (NUMBER_of_DAYS);
|
||
|
PreRenderedCloudAltitudeCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
CloudExtinctionCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
AlphaSaturationCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
CloudDensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
MoonBrightIntensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
MoonBrightRangeCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
//Procedural Clouds
|
||
|
WispyCovarageCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
WispyCloudSpeedCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
WispyColorGradientColor.RemoveAt (NUMBER_of_DAYS);
|
||
|
WispyBrightGradientColor.RemoveAt (NUMBER_of_DAYS);
|
||
|
WispyDarknessGradientColor.RemoveAt (NUMBER_of_DAYS);
|
||
|
//Ambient
|
||
|
AmbientIntensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
ReflectionIntensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
ReflectionBouncesCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
ReflectionProbeIntensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
AmbientColorGradient.RemoveAt (NUMBER_of_DAYS);
|
||
|
SkyAmbientColorGradient.RemoveAt (NUMBER_of_DAYS);
|
||
|
EquatorAmbientColorGradient.RemoveAt (NUMBER_of_DAYS);
|
||
|
GroundAmbientColorGradient.RemoveAt (NUMBER_of_DAYS);
|
||
|
//Lighting
|
||
|
SunDirLightIntensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
MoonDirLightIntensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
SunFlareIntensityCurve.RemoveAt (NUMBER_of_DAYS);
|
||
|
SunDirLightColorGradient.RemoveAt (NUMBER_of_DAYS);
|
||
|
MoonDirLightColorGradient.RemoveAt (NUMBER_of_DAYS);
|
||
|
}
|
||
|
}
|
||
|
void OnEnable()
|
||
|
{
|
||
|
#if UNITY_EDITOR
|
||
|
if (RenderSettings.skybox != Sky_Material) {
|
||
|
RenderSettings.skybox = Sky_Material;
|
||
|
}
|
||
|
switch (ambientSourceIndex){
|
||
|
case 0:
|
||
|
RenderSettings.ambientMode = UnityEngine.Rendering.AmbientMode.Skybox;
|
||
|
break;
|
||
|
case 1:
|
||
|
RenderSettings.ambientMode = UnityEngine.Rendering.AmbientMode.Trilight;
|
||
|
break;
|
||
|
case 2:
|
||
|
RenderSettings.ambientMode = UnityEngine.Rendering.AmbientMode.Flat;
|
||
|
break;
|
||
|
}
|
||
|
#endif
|
||
|
}
|
||
|
}
|