public void loadConfigPoint(int point) { ConfigPoint _cur = Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints [point]; postProcessDepth = _cur.postProcessDepth; _Post_Extinction_Tint = _cur._Post_Extinction_Tint; postExtinctionMultiplier = _cur.postExtinctionMultiplier; postProcessExposure = _cur.postProcessExposure; postProcessingalpha = _cur.postProcessAlpha; alphaGlobal = _cur.skyAlpha; exposure = _cur.skyExposure; skyRimExposure = _cur.skyRimExposure; extinctionMultiplier = _cur.skyExtinctionMultiplier; extinctionTint = _cur.skyExtinctionTint; skyExtinctionRimFade = _cur.skyextinctionRimFade; skyExtinctionGroundFade = _cur.skyextinctionGroundFade; _extinctionScatterIntensity = _cur._extinctionScatterIntensity; pointAltitude = _cur.altitude; openglThreshold = _cur.openglThreshold; _GlobalOceanAlpha = _cur._GlobalOceanAlpha; viewdirOffset = _cur.viewdirOffset; }
public void interpolateValuesFrom(ConfigPoint inConfigPoint1, ConfigPoint inConfigPoint2, float x) { skyAlpha = Mathf.Lerp(inConfigPoint1.skyAlpha, inConfigPoint2.skyAlpha, x); skyExposure = Mathf.Lerp(inConfigPoint1.skyExposure, inConfigPoint2.skyExposure, x); postProcessAlpha = Mathf.Lerp(inConfigPoint1.postProcessAlpha, inConfigPoint2.postProcessAlpha, x); postProcessDepth = Mathf.Lerp(inConfigPoint1.postProcessDepth, inConfigPoint2.postProcessDepth, x); scatteringExposure = Mathf.Lerp(inConfigPoint1.scatteringExposure, inConfigPoint2.scatteringExposure, x); skyExtinctionTint = Mathf.Lerp(inConfigPoint1.skyExtinctionTint, inConfigPoint2.skyExtinctionTint, x); openglThreshold = Mathf.Lerp(inConfigPoint1.openglThreshold, inConfigPoint2.openglThreshold, x); viewdirOffset = Mathf.Lerp(inConfigPoint1.viewdirOffset, inConfigPoint2.viewdirOffset, x); extinctionTint = Mathf.Lerp(inConfigPoint1.extinctionTint, inConfigPoint2.extinctionTint, x); extinctionThickness = Mathf.Lerp(inConfigPoint1.extinctionThickness, inConfigPoint2.extinctionThickness, x); }
public void getValuesFrom(ConfigPoint inConfigPoint) { skyAlpha = inConfigPoint.skyAlpha; skyExposure = inConfigPoint.skyExposure; postProcessAlpha = inConfigPoint.postProcessAlpha; postProcessDepth = inConfigPoint.postProcessDepth; scatteringExposure = inConfigPoint.scatteringExposure; skyExtinctionTint = inConfigPoint.skyExtinctionTint; openglThreshold = inConfigPoint.openglThreshold; viewdirOffset = inConfigPoint.viewdirOffset; extinctionTint = inConfigPoint.extinctionTint; extinctionThickness = inConfigPoint.extinctionThickness; }
public void getSettingsFromSkynode() { SkyNode skyNode = Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode; ConfigPoint selected = skyNode.configPoints [selectedConfigPoint]; postProcessingalpha = selected.postProcessAlpha; postProcessDepth = selected.postProcessDepth; extinctionTint = selected.extinctionTint; postProcessExposure = selected.scatteringExposure; exposure = selected.skyExposure; alphaGlobal = selected.skyAlpha; openglThreshold = selected.openglThreshold; configPointsCnt = skyNode.configPoints.Count; specR = skyNode.specR; specG = skyNode.specG; specB = skyNode.specB; shininess = skyNode.shininess; flattenScaledSpaceMesh = skyNode.flattenScaledSpaceMesh; rimBlend = skyNode.rimBlend; rimpower = skyNode.rimpower; skyExtinctionTint = selected.skyExtinctionTint; extinctionThickness = selected.extinctionThickness; mieG = skyNode.m_mieG; experimentalAtmoScale = skyNode.experimentalAtmoScale; atmosphereGlobalScale = skyNode.atmosphereGlobalScale; viewdirOffset = selected.viewdirOffset; cloudColorMultiplier = skyNode.cloudColorMultiplier; cloudScatteringMultiplier = skyNode.cloudScatteringMultiplier; cloudSkyIrradianceMultiplier = skyNode.cloudSkyIrradianceMultiplier; volumetricsColorMultiplier = skyNode.volumetricsColorMultiplier; // volumetricsScatteringMultiplier = skyNode.volumetricsScatteringMultiplier; // volumetricsSkyIrradianceMultiplier = skyNode.volumetricsSkyIrradianceMultiplier; }
public void loadConfigPoint(int point) { ConfigPoint _cur = Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints [point]; postProcessDepth = _cur.postProcessDepth; extinctionTint = _cur.extinctionTint; postProcessExposure = _cur.scatteringExposure; postProcessingalpha = _cur.postProcessAlpha; alphaGlobal = _cur.skyAlpha; exposure = _cur.skyExposure; skyExtinctionTint = _cur.skyExtinctionTint; extinctionThickness = _cur.extinctionThickness; pointAltitude = _cur.altitude; openglThreshold = _cur.openglThreshold; viewdirOffset = _cur.viewdirOffset; }
public void interpolateValuesFrom(ConfigPoint inConfigPoint1, ConfigPoint inConfigPoint2, float x) { //altitude skyAlpha = Mathf.Lerp(inConfigPoint1.skyAlpha, inConfigPoint2.skyAlpha, x); skyExposure = Mathf.Lerp(inConfigPoint1.skyExposure, inConfigPoint2.skyExposure, x); postProcessAlpha = Mathf.Lerp(inConfigPoint1.postProcessAlpha, inConfigPoint2.postProcessAlpha, x); postProcessDepth = Mathf.Lerp(inConfigPoint1.postProcessDepth, inConfigPoint2.postProcessDepth, x); postProcessExposure = Mathf.Lerp(inConfigPoint1.postProcessExposure, inConfigPoint2.postProcessExposure, x); skyExtinctionMultiplier = Mathf.Lerp(inConfigPoint1.skyExtinctionMultiplier, inConfigPoint2.skyExtinctionMultiplier, x); skyExtinctionTint = Mathf.Lerp(inConfigPoint1.skyExtinctionTint, inConfigPoint2.skyExtinctionTint, x); openglThreshold = Mathf.Lerp(inConfigPoint1.openglThreshold, inConfigPoint2.openglThreshold, x); edgeThreshold = Mathf.Lerp(inConfigPoint1.edgeThreshold, inConfigPoint2.edgeThreshold, x); viewdirOffset = Mathf.Lerp(inConfigPoint1.viewdirOffset, inConfigPoint2.viewdirOffset, x); skyRimExposure = Mathf.Lerp(inConfigPoint1.skyRimExposure, inConfigPoint2.skyRimExposure, x); skyextinctionRimFade = Mathf.Lerp(inConfigPoint1.skyextinctionRimFade, inConfigPoint2.skyextinctionRimFade, x); skyextinctionGroundFade = Mathf.Lerp(inConfigPoint1.skyextinctionGroundFade, inConfigPoint2.skyextinctionGroundFade, x); postExtinctionMultiplier = Mathf.Lerp(inConfigPoint1.postExtinctionMultiplier, inConfigPoint2.postExtinctionMultiplier, x); _Post_Extinction_Tint = Mathf.Lerp(inConfigPoint1._Post_Extinction_Tint, inConfigPoint2._Post_Extinction_Tint, x); _GlobalOceanAlpha = Mathf.Lerp(inConfigPoint1._GlobalOceanAlpha, inConfigPoint2._GlobalOceanAlpha, x); _extinctionScatterIntensity = Mathf.Lerp(inConfigPoint1._extinctionScatterIntensity, inConfigPoint2._extinctionScatterIntensity, x); }
public void getValuesFrom(ConfigPoint inConfigPoint) { //altitude=inConfigPoint.altitude; skyAlpha = inConfigPoint.skyAlpha; skyExposure = inConfigPoint.skyExposure; postProcessAlpha = inConfigPoint.postProcessAlpha; postProcessDepth = inConfigPoint.postProcessDepth; postProcessExposure = inConfigPoint.postProcessExposure; skyExtinctionMultiplier = inConfigPoint.skyExtinctionMultiplier; skyExtinctionTint = inConfigPoint.skyExtinctionTint; openglThreshold = inConfigPoint.openglThreshold; edgeThreshold = inConfigPoint.edgeThreshold; viewdirOffset = inConfigPoint.viewdirOffset; skyRimExposure = inConfigPoint.skyRimExposure; skyextinctionRimFade = inConfigPoint.skyextinctionRimFade; skyextinctionGroundFade = inConfigPoint.skyextinctionGroundFade; postExtinctionMultiplier = inConfigPoint.postExtinctionMultiplier; _Post_Extinction_Tint = inConfigPoint._Post_Extinction_Tint; _GlobalOceanAlpha = inConfigPoint._GlobalOceanAlpha; _extinctionScatterIntensity = inConfigPoint._extinctionScatterIntensity; }
void DrawAtmosphereGUI() { ConfigPoint _cur = Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints [selectedConfigPoint]; //if (!MapView.MapIsEnabled) { GUILayout.BeginHorizontal(); GUILayout.Label("New point altitude:"); newCfgPtAlt = Convert.ToSingle(GUILayout.TextField(newCfgPtAlt.ToString())); if (GUILayout.Button("Add")) { Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints.Insert(selectedConfigPoint + 1, new ConfigPoint(newCfgPtAlt, alphaGlobal / 100, exposure / 100, postProcessingalpha / 100, postProcessDepth / 10000, postProcessExposure / 100, skyExtinctionTint / 100, openglThreshold, viewdirOffset, extinctionTint / 100, extinctionThickness)); selectedConfigPoint += 1; configPointsCnt = Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints.Count; loadConfigPoint(selectedConfigPoint); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Config point:"); if (GUILayout.Button("<")) { if (selectedConfigPoint > 0) { selectedConfigPoint -= 1; loadConfigPoint(selectedConfigPoint); } } GUILayout.TextField((selectedConfigPoint).ToString()); if (GUILayout.Button(">")) { if (selectedConfigPoint < configPointsCnt - 1) { selectedConfigPoint += 1; loadConfigPoint(selectedConfigPoint); } } //GUILayout.Label (String.Format("Total:{0}", configPointsCnt)); if (GUILayout.Button("Delete")) { if (configPointsCnt <= 1) { print("Can't delete config point, one or no points remaining"); } else { Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints.RemoveAt(selectedConfigPoint); if (selectedConfigPoint >= configPointsCnt - 1) { selectedConfigPoint = configPointsCnt - 2; } configPointsCnt = Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints.Count; loadConfigPoint(selectedConfigPoint); } } GUILayout.EndHorizontal(); GUIfloat("Point altitude", ref pointAltitude, ref _cur.altitude); _scroll = GUILayout.BeginScrollView(_scroll, false, true, GUILayout.Width(400), GUILayout.Height(Scatterer.Instance.pluginData.scrollSectionHeight)); GUILayout.Label("(settings with a * are global and not cfgPoint dependent)"); GUILayout.Label("Atmo"); GUIfloat("ExperimentalAtmoScale*", ref experimentalAtmoScale, ref Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.experimentalAtmoScale); GUIfloat("AtmosphereGlobalScale*", ref atmosphereGlobalScale, ref Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.atmosphereGlobalScale); GUIfloat("mieG*", ref mieG, ref Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.m_mieG); GUILayout.Label("Sky"); GUIfloat("Sky Exposure", ref exposure, ref _cur.skyExposure); GUIfloat("Sky Alpha", ref alphaGlobal, ref _cur.skyAlpha); GUIfloat("Sky Extinction Tint", ref skyExtinctionTint, ref _cur.skyExtinctionTint); GUILayout.Label("Scattering and Extinction"); GUIfloat("Scattering Exposure (scaled+local)", ref postProcessExposure, ref _cur.scatteringExposure); GUIfloat("Extinction Tint (scaled+local)", ref extinctionTint, ref _cur.extinctionTint); GUIfloat("Extinction Thickness (scaled+local)", ref extinctionThickness, ref _cur.extinctionThickness); GUILayout.Label("Post Processing"); GUIfloat("Post Processing Alpha", ref postProcessingalpha, ref _cur.postProcessAlpha); GUIfloat("Post Processing Depth", ref postProcessDepth, ref _cur.postProcessDepth); GUILayout.Label("Artifact Fixes"); GUIfloat("ViewDirOffset", ref viewdirOffset, ref _cur.viewdirOffset); GUIfloat("Depth buffer Threshold", ref openglThreshold, ref _cur.openglThreshold); } if (Scatterer.Instance.mainSettings.integrateWithEVEClouds && Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.usesCloudIntegration) { GUILayout.Label("EVE integration"); GUIfloat("Cloud Color Multiplier*", ref cloudColorMultiplier, ref Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.cloudColorMultiplier); GUIfloat("Cloud Scattering Multiplier*", ref cloudScatteringMultiplier, ref Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.cloudScatteringMultiplier); GUIfloat("Cloud Sky irradiance Multiplier*", ref cloudSkyIrradianceMultiplier, ref Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.cloudSkyIrradianceMultiplier); GUIfloat("Volumetrics Color Multiplier*", ref volumetricsColorMultiplier, ref Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.volumetricsColorMultiplier); GUILayout.BeginHorizontal(); GUILayout.Label("Preserve cloud colors*"); GUILayout.TextField(Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.EVEIntegration_preserveCloudColors.ToString()); if (GUILayout.Button("Toggle")) { Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.togglePreserveCloudColors(); } GUILayout.EndHorizontal(); // GUIfloat("Volumetrics Scattering Multiplier", ref volumetricsScatteringMultiplier, ref Scatterer.Instance.planetsListReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.volumetricsScatteringMultiplier); // GUIfloat("Volumetrics Sky irradiance Multiplier", ref volumetricsSkyIrradianceMultiplier, ref Scatterer.Instance.planetsListReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.volumetricsSkyIrradianceMultiplier); } GUILayout.Label("ScaledSpace model"); GUILayout.BeginHorizontal(); GUILayout.Label("RimBlend*"); rimBlend = Convert.ToSingle(GUILayout.TextField(rimBlend.ToString())); GUILayout.Label("RimPower*"); rimpower = Convert.ToSingle(GUILayout.TextField(rimpower.ToString())); if (GUILayout.Button("Set")) { Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.rimBlend = rimBlend; Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.rimpower = rimpower; Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.tweakStockAtmosphere(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Spec*: R"); specR = (float)(Convert.ToDouble(GUILayout.TextField(specR.ToString()))); GUILayout.Label("G"); specG = (float)(Convert.ToDouble(GUILayout.TextField(specG.ToString()))); GUILayout.Label("B"); specB = (float)(Convert.ToDouble(GUILayout.TextField(specB.ToString()))); GUILayout.Label("shine*"); shininess = (float)(Convert.ToDouble(GUILayout.TextField(shininess.ToString()))); if (GUILayout.Button("Set")) { Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.specR = specR; Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.specG = specG; Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.specB = specB; Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.shininess = shininess; Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.tweakStockAtmosphere(); } GUILayout.EndHorizontal(); GUILayout.EndScrollView(); GUILayout.BeginHorizontal(); if (Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.currentConfigPoint == 0) { GUILayout.Label("Current state:Lowest configPoint, cfgPoint 0"); } else if (Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.currentConfigPoint >= configPointsCnt) { GUILayout.Label(String.Format("Current state:Highest configPoint, cfgPoint{0}", Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.currentConfigPoint - 1)); } else { GUILayout.Label(String.Format("Current state:{0}% cfgPoint{1} + {2}% cfgPoint{3} ", (int)(100 * (1 - Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.percentage)), Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.currentConfigPoint - 1, (int)(100 * Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.percentage), Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.currentConfigPoint)); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Toggle PostProcessing")) { Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.togglePostProcessing(); } GUILayout.EndHorizontal(); // GUILayout.BeginHorizontal (); // if (GUILayout.Button ("toggle sky")) // { // Scatterer.Instance.planetsListReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.skyEnabled = !Scatterer.Instance.planetsListReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.skyEnabled; // if (Scatterer.Instance.planetsListReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.skyEnabled) // Scatterer.Instance.planetsListReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.tweakStockAtmosphere(); // else // Scatterer.Instance.planetsListReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.RestoreStockAtmosphere(); // } // GUILayout.EndHorizontal (); GUILayout.BeginHorizontal(); if (GUILayout.Button("Save atmo")) { Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.saveToConfigNode(); } if (GUILayout.Button("Load atmo")) { Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.loadFromConfigNode(); getSettingsFromSkynode(); loadConfigPoint(selectedConfigPoint); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label(".cfg file used:"); GUILayout.TextField(Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configUrl.parent.url); GUILayout.EndHorizontal(); if (Scatterer.Instance.mainSettings.integrateWithEVEClouds) { GUILayout.BeginHorizontal(); if (GUILayout.Button("Map EVE clouds")) { Scatterer.Instance.eveReflectionHandler.MapEVEClouds(); foreach (ScattererCelestialBody _cel in Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies) { if (_cel.active) { _cel.m_manager.m_skyNode.initiateEVEClouds(); if (!_cel.m_manager.m_skyNode.inScaledSpace) { _cel.m_manager.m_skyNode.mapEVEVolumetrics(); } } } } GUILayout.EndHorizontal(); } }
public void getSettingsFromSkynode() { SkyNode skyNode = Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode; ConfigPoint selected = skyNode.configPoints [selectedConfigPoint]; postProcessingalpha = selected.postProcessAlpha; // postProcessDepth = 10000 * selected.postProcessDepth; postProcessDepth = selected.postProcessDepth; _Post_Extinction_Tint = selected._Post_Extinction_Tint; postExtinctionMultiplier = selected.postExtinctionMultiplier; postProcessExposure = selected.postProcessExposure; exposure = selected.skyExposure; skyRimExposure = selected.skyRimExposure; alphaGlobal = selected.skyAlpha; openglThreshold = selected.openglThreshold; _GlobalOceanAlpha = selected._GlobalOceanAlpha; // edgeThreshold = selected.edgeThreshold * 100; mapAlphaGlobal = skyNode.mapAlphaGlobal; mapExposure = skyNode.mapExposure; mapSkyRimeExposure = skyNode.mapSkyRimExposure; configPointsCnt = skyNode.configPoints.Count; specR = skyNode.specR; specG = skyNode.specG; specB = skyNode.specB; shininess = skyNode.shininess; rimBlend = skyNode.rimBlend; rimpower = skyNode.rimpower; //MapViewScale = skyNode.MapViewScale; extinctionMultiplier = selected.skyExtinctionMultiplier; extinctionTint = selected.skyExtinctionTint; skyExtinctionRimFade = selected.skyextinctionRimFade; skyExtinctionGroundFade = selected.skyextinctionGroundFade; _extinctionScatterIntensity = selected._extinctionScatterIntensity; mapExtinctionMultiplier = skyNode.mapExtinctionMultiplier; mapExtinctionTint = skyNode.mapExtinctionTint; mapSkyExtinctionRimFade = skyNode.mapSkyExtinctionRimFade; _mapExtinctionScatterIntensity = skyNode._mapExtinctionScatterIntensity; showInterpolatedValues = skyNode.displayInterpolatedVariables; mieG = skyNode.m_mieG; experimentalAtmoScale = skyNode.experimentalAtmoScale; viewdirOffset = selected.viewdirOffset; cloudColorMultiplier = skyNode.cloudColorMultiplier; cloudScatteringMultiplier = skyNode.cloudScatteringMultiplier; cloudSkyIrradianceMultiplier = skyNode.cloudSkyIrradianceMultiplier; volumetricsColorMultiplier = skyNode.volumetricsColorMultiplier; // volumetricsScatteringMultiplier = skyNode.volumetricsScatteringMultiplier; // volumetricsSkyIrradianceMultiplier = skyNode.volumetricsSkyIrradianceMultiplier; }
// UI BUTTONS // This isn't the most elegant section due to how many elements are here // I don't care enough to do it in a cleaner way // After all it's a basic UI for tweaking settings and it does it's job public void DrawScattererWindow(int windowId) { GUItoggle("Hide", ref Core.Instance.visible); if (Core.Instance.mainMenu) //MAIN MENU options { GUILayout.Label(String.Format("Scatterer: features selector")); Core.Instance.useOceanShaders = GUILayout.Toggle(Core.Instance.useOceanShaders, "Ocean shaders (may require game restart on change)"); GUILayout.BeginHorizontal(); GUILayout.Label("Ocean: fourierGridSize (64:fast,128:normal,256:HQ)"); Core.Instance.m_fourierGridSize = (Int32)(Convert.ToInt32(GUILayout.TextField(Core.Instance.m_fourierGridSize.ToString()))); GUILayout.EndHorizontal(); Core.Instance.oceanSkyReflections = GUILayout.Toggle(Core.Instance.oceanSkyReflections, "Ocean: accurate sky reflection"); Core.Instance.oceanRefraction = GUILayout.Toggle(Core.Instance.oceanRefraction, "Ocean: refraction effects"); Core.Instance.oceanPixelLights = GUILayout.Toggle(Core.Instance.oceanPixelLights, "Ocean: lights compatibility (huge performance hit when lights on)"); //Core.Instance.usePlanetShine = GUILayout.Toggle(Core.Instance.usePlanetShine, "PlanetShine"); Core.Instance.integrateWithEVEClouds = GUILayout.Toggle(Core.Instance.integrateWithEVEClouds, "Integrate effects with EVE clouds (may require restart)"); Core.Instance.drawAtmoOnTopOfClouds = GUILayout.Toggle(Core.Instance.drawAtmoOnTopOfClouds, "Draw atmo on top of EVE clouds(old cloud shading, use with EVE 7-4)"); Core.Instance.fullLensFlareReplacement = GUILayout.Toggle(Core.Instance.fullLensFlareReplacement, "Lens flare shader"); Core.Instance.useEclipses = GUILayout.Toggle(Core.Instance.useEclipses, "Eclipses (WIP, sky/orbit only for now)"); Core.Instance.useRingShadows = GUILayout.Toggle(Core.Instance.useRingShadows, "Kopernicus ring shadows"); Core.Instance.useGodrays = GUILayout.Toggle(Core.Instance.useGodrays, "Godrays (early WIP)"); Core.Instance.terrainShadows = GUILayout.Toggle(Core.Instance.terrainShadows, "Terrain shadows"); GUILayout.BeginHorizontal(); GUILayout.Label("Shadow bias"); Core.Instance.shadowBias = float.Parse(GUILayout.TextField(Core.Instance.shadowBias.ToString("0.000"))); GUILayout.Label("Shadow normal bias"); Core.Instance.shadowNormalBias = float.Parse(GUILayout.TextField(Core.Instance.shadowNormalBias.ToString("0.000"))); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Menu scroll section height"); Core.Instance.scrollSectionHeight = (Int32)(Convert.ToInt32(GUILayout.TextField(Core.Instance.scrollSectionHeight.ToString()))); GUILayout.EndHorizontal(); Core.Instance.disableAmbientLight = GUILayout.Toggle(Core.Instance.disableAmbientLight, "Disable scaled space ambient light"); Core.Instance.showMenuOnStart = GUILayout.Toggle(Core.Instance.showMenuOnStart, "Show this menu on start-up"); GUILayout.BeginHorizontal(); GUILayout.Label(".cfg file used:"); GUILayout.TextField(Core.Instance.baseConfigs [0].parent.url); GUILayout.EndHorizontal(); } else if (Core.Instance.isActive) { GUILayout.BeginHorizontal(); GUILayout.Label("Planet:"); if (GUILayout.Button("<")) { if (selectedPlanet > 0) { selectedPlanet -= 1; selectedConfigPoint = 0; if (Core.Instance.scattererCelestialBodies [selectedPlanet].active) { loadConfigPoint(selectedConfigPoint); getSettingsFromSkynode(); if (Core.Instance.scattererCelestialBodies [selectedPlanet].hasOcean) { getSettingsFromOceanNode(); } } } } GUILayout.TextField((Core.Instance.scattererCelestialBodies [selectedPlanet].celestialBodyName).ToString()); if (GUILayout.Button(">")) { if (selectedPlanet < Core.Instance.scattererCelestialBodies.Count - 1) { selectedPlanet += 1; selectedConfigPoint = 0; if (Core.Instance.scattererCelestialBodies [selectedPlanet].active) { loadConfigPoint(selectedConfigPoint); getSettingsFromSkynode(); if (Core.Instance.scattererCelestialBodies [selectedPlanet].hasOcean) { getSettingsFromOceanNode(); } } } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Planet loaded:" + Core.Instance.scattererCelestialBodies [selectedPlanet].active.ToString() + " Has ocean:" + Core.Instance.scattererCelestialBodies [selectedPlanet].hasOcean.ToString()); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Load distance:" + Core.Instance.scattererCelestialBodies [selectedPlanet].loadDistance.ToString() + " Unload distance:" + Core.Instance.scattererCelestialBodies [selectedPlanet].unloadDistance.ToString()); GUILayout.EndHorizontal(); if (Core.Instance.scattererCelestialBodies [selectedPlanet].active) { configPointsCnt = Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints.Count; GUILayout.BeginHorizontal(); if (GUILayout.Button("Atmosphere settings")) { displayOceanSettings = false; //displaySunflareSettings = false; } if (GUILayout.Button("Ocean settings")) { if (Core.Instance.scattererCelestialBodies [selectedPlanet].hasOcean) { displayOceanSettings = true; } //displaySunflareSettings = false; } // if (GUILayout.Button ("Sunflare(s) Settings")) { // displayOceanSettings = false; // displaySunflareSettings = true; // } GUILayout.EndHorizontal(); ConfigPoint _cur = Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints [selectedConfigPoint]; if (!displayOceanSettings) { if (!MapView.MapIsEnabled) { GUILayout.BeginHorizontal(); GUILayout.Label("New point altitude:"); newCfgPtAlt = Convert.ToSingle(GUILayout.TextField(newCfgPtAlt.ToString())); if (GUILayout.Button("Add")) { Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints.Insert(selectedConfigPoint + 1, new ConfigPoint(newCfgPtAlt, alphaGlobal / 100, exposure / 100, skyRimExposure / 100, postProcessingalpha / 100, postProcessDepth / 10000, postProcessExposure / 100, extinctionMultiplier / 100, extinctionTint / 100, skyExtinctionRimFade / 100, skyExtinctionGroundFade / 100, openglThreshold, edgeThreshold / 100, viewdirOffset, _Post_Extinction_Tint / 100, postExtinctionMultiplier / 100, _GlobalOceanAlpha / 100, _extinctionScatterIntensity / 100)); selectedConfigPoint += 1; configPointsCnt = Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints.Count; loadConfigPoint(selectedConfigPoint); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Config point:"); if (GUILayout.Button("<")) { if (selectedConfigPoint > 0) { selectedConfigPoint -= 1; loadConfigPoint(selectedConfigPoint); } } GUILayout.TextField((selectedConfigPoint).ToString()); if (GUILayout.Button(">")) { if (selectedConfigPoint < configPointsCnt - 1) { selectedConfigPoint += 1; loadConfigPoint(selectedConfigPoint); } } //GUILayout.Label (String.Format("Total:{0}", configPointsCnt)); if (GUILayout.Button("Delete")) { if (configPointsCnt <= 1) { print("Can't delete config point, one or no points remaining"); } else { Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints.RemoveAt(selectedConfigPoint); if (selectedConfigPoint >= configPointsCnt - 1) { selectedConfigPoint = configPointsCnt - 2; } configPointsCnt = Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configPoints.Count; loadConfigPoint(selectedConfigPoint); } } GUILayout.EndHorizontal(); GUIfloat("Point altitude", ref pointAltitude, ref _cur.altitude); _scroll = GUILayout.BeginScrollView(_scroll, false, true, GUILayout.Width(400), GUILayout.Height(Core.Instance.scrollSectionHeight)); GUIfloat("experimentalAtmoScale", ref experimentalAtmoScale, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.experimentalAtmoScale); GUIfloat("AtmosphereGlobalScale", ref atmosphereGlobalScale, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.atmosphereGlobalScale); GUIfloat("experimentalViewDirOffset", ref viewdirOffset, ref _cur.viewdirOffset); // GUILayout.Label("Sky/Orbit shader"); GUIfloat("Sky/orbit Alpha", ref alphaGlobal, ref _cur.skyAlpha); GUIfloat("Sky/orbit Exposure", ref exposure, ref _cur.skyExposure); // tonemapper.setExposure(exposure); GUIfloat("Sky/orbit Rim Exposure", ref skyRimExposure, ref _cur.skyRimExposure); GUIfloat("extinctionMultiplier", ref extinctionMultiplier, ref _cur.skyExtinctionMultiplier); GUIfloat("extinctionTint", ref extinctionTint, ref _cur.skyExtinctionTint); GUIfloat("extinctionRimFade", ref skyExtinctionRimFade, ref _cur.skyextinctionRimFade); GUIfloat("extinctionGroundFade", ref skyExtinctionGroundFade, ref _cur.skyextinctionGroundFade); GUIfloat("extinctionScatterIntensity", ref _extinctionScatterIntensity, ref _cur._extinctionScatterIntensity); // GUILayout.Label("Post-processing shader"); GUIfloat("Post Processing Alpha", ref postProcessingalpha, ref _cur.postProcessAlpha); GUIfloat("Post Processing Depth", ref postProcessDepth, ref _cur.postProcessDepth); GUIfloat("Post Processing Extinction Multiplier", ref postExtinctionMultiplier, ref _cur.postExtinctionMultiplier); GUIfloat("Post Processing Extinction Tint", ref _Post_Extinction_Tint, ref _cur._Post_Extinction_Tint); GUIfloat("Post Processing Exposure", ref postProcessExposure, ref _cur.postProcessExposure); // if (!d3d9) { GUIfloat("Depth buffer Threshold", ref openglThreshold, ref _cur.openglThreshold); } GUIfloat("_GlobalOceanAlpha", ref _GlobalOceanAlpha, ref _cur._GlobalOceanAlpha); } else { _scroll = GUILayout.BeginScrollView(_scroll, false, true, GUILayout.Width(400), GUILayout.Height(Core.Instance.scrollSectionHeight)); GUIfloat("experimentalAtmoScale", ref experimentalAtmoScale, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.experimentalAtmoScale); GUIfloat("AtmosphereGlobalScale", ref atmosphereGlobalScale, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.atmosphereGlobalScale); GUIfloat("Map view alpha", ref mapAlphaGlobal, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.mapAlphaGlobal); GUIfloat("Map view exposure", ref mapExposure, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.mapExposure); GUIfloat("Map view rim exposure", ref mapSkyRimeExposure, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.mapSkyRimExposure); GUIfloat("MapExtinctionMultiplier", ref mapExtinctionMultiplier, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.mapExtinctionMultiplier); GUIfloat("MapExtinctionTint", ref mapExtinctionTint, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.mapExtinctionTint); GUIfloat("MapExtinctionRimFade", ref mapSkyExtinctionRimFade, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.mapSkyExtinctionRimFade); GUIfloat("MapExtinctionScatterIntensity", ref _mapExtinctionScatterIntensity, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode._mapExtinctionScatterIntensity); } GUIfloat("mieG", ref mieG, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.m_mieG); if (Core.Instance.integrateWithEVEClouds && Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.usesCloudIntegration) { GUIfloat("Cloud Color Multiplier", ref cloudColorMultiplier, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.cloudColorMultiplier); GUIfloat("Cloud Scattering Multiplier", ref cloudScatteringMultiplier, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.cloudScatteringMultiplier); GUIfloat("Cloud Sky irradiance Multiplier", ref cloudSkyIrradianceMultiplier, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.cloudSkyIrradianceMultiplier); GUIfloat("Volumetrics Color Multiplier", ref volumetricsColorMultiplier, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.volumetricsColorMultiplier); GUILayout.BeginHorizontal(); GUILayout.Label("Preserve cloud colors "); GUILayout.TextField(Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.EVEIntegration_preserveCloudColors.ToString()); if (GUILayout.Button("Toggle")) { Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.togglePreserveCloudColors(); } GUILayout.EndHorizontal(); // GUIfloat("Volumetrics Scattering Multiplier", ref volumetricsScatteringMultiplier, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.volumetricsScatteringMultiplier); // GUIfloat("Volumetrics Sky irradiance Multiplier", ref volumetricsSkyIrradianceMultiplier, ref Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.volumetricsSkyIrradianceMultiplier); } GUILayout.BeginHorizontal(); GUILayout.Label("RimBlend"); rimBlend = Convert.ToSingle(GUILayout.TextField(rimBlend.ToString())); GUILayout.Label("RimPower"); rimpower = Convert.ToSingle(GUILayout.TextField(rimpower.ToString())); if (GUILayout.Button("Set")) { Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.rimBlend = rimBlend; Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.rimpower = rimpower; Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.tweakStockAtmosphere(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Spec: R"); specR = (float)(Convert.ToDouble(GUILayout.TextField(specR.ToString()))); GUILayout.Label("G"); specG = (float)(Convert.ToDouble(GUILayout.TextField(specG.ToString()))); GUILayout.Label("B"); specB = (float)(Convert.ToDouble(GUILayout.TextField(specB.ToString()))); GUILayout.Label("shine"); shininess = (float)(Convert.ToDouble(GUILayout.TextField(shininess.ToString()))); if (GUILayout.Button("Set")) { Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.specR = specR; Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.specG = specG; Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.specB = specB; Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.shininess = shininess; Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.tweakStockAtmosphere(); } GUILayout.EndHorizontal(); if (!MapView.MapIsEnabled) { GUILayout.BeginHorizontal(); if (Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.currentConfigPoint == 0) { GUILayout.Label("Current state:Ground, cfgPoint 0"); } else if (Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.currentConfigPoint >= configPointsCnt) { GUILayout.Label(String.Format("Current state:Orbit, cfgPoint{0}", Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.currentConfigPoint - 1)); } else { GUILayout.Label(String.Format("Current state:{0}% cfgPoint{1} + {2}% cfgPoint{3} ", (int)(100 * (1 - Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.percentage)), Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.currentConfigPoint - 1, (int)(100 * Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.percentage), Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.currentConfigPoint)); } GUILayout.EndHorizontal(); } GUILayout.EndScrollView(); GUILayout.BeginHorizontal(); GUItoggle("Toggle depth buffer", ref Core.Instance.depthbufferEnabled); if (GUILayout.Button("Toggle PostProcessing")) { Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.togglePostProcessing(); } GUILayout.EndHorizontal(); // GUILayout.BeginHorizontal (); // if (GUILayout.Button ("toggle sky")) // { // Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.skyEnabled = !Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.skyEnabled; // if (Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.skyEnabled) // Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.tweakStockAtmosphere(); // else // Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.RestoreStockAtmosphere(); // } // GUILayout.EndHorizontal (); GUILayout.BeginHorizontal(); if (GUILayout.Button("Save atmo")) { Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.displayInterpolatedVariables = showInterpolatedValues; Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.saveToConfigNode(); } if (GUILayout.Button("Load atmo")) { Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.loadFromConfigNode(); getSettingsFromSkynode(); loadConfigPoint(selectedConfigPoint); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label(".cfg file used:"); GUILayout.TextField(Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.m_skyNode.configUrl.parent.url); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Map EVE clouds")) { Core.Instance.mapEVEClouds(); foreach (ScattererCelestialBody _cel in Core.Instance.scattererCelestialBodies) { if (_cel.active) { if (!_cel.m_manager.m_skyNode.inScaledSpace) { _cel.m_manager.m_skyNode.mapEVEvolumetrics(); } } } } GUILayout.EndHorizontal(); } else { OceanWhiteCaps oceanNode = Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.GetOceanNode(); //GUItoggle("Toggle ocean", ref stockOcean); _scroll2 = GUILayout.BeginScrollView(_scroll2, false, true, GUILayout.Width(400), GUILayout.Height(Core.Instance.scrollSectionHeight + 100)); { GUIfloat("ocean Level", ref oceanLevel, ref oceanNode.m_oceanLevel); GUIfloat("Alpha/WhiteCap Radius", ref oceanAlphaRadius, ref oceanNode.alphaRadius); GUIfloat("ocean Alpha", ref oceanAlpha, ref oceanNode.oceanAlpha); GUIfloat("Transparency Depth", ref transparencyDepth, ref oceanNode.transparencyDepth); GUIfloat("Darkness Depth", ref darknessDepth, ref oceanNode.darknessDepth); GUIfloat("Refraction Index", ref refractionIndex, ref oceanNode.refractionIndex); GUIfloat("Shore foam", ref shoreFoam, ref oceanNode.shoreFoam); GUIfloat("whiteCapStr (foam)", ref m_whiteCapStr, ref oceanNode.m_whiteCapStr); GUIfloat("far whiteCapStr", ref farWhiteCapStr, ref oceanNode.m_farWhiteCapStr); GUIfloat("choppyness multiplier", ref choppynessMultiplier, ref oceanNode.choppynessMultiplier); GUIvector3("Ocean Upwelling Color", ref oceanUpwellingColorR, ref oceanUpwellingColorG, ref oceanUpwellingColorB, ref oceanNode.m_oceanUpwellingColor); GUIvector3("Ocean Underwater Color", ref oceanUnderwaterColorR, ref oceanUnderwaterColorG, ref oceanUnderwaterColorB, ref oceanNode.m_UnderwaterColor); GUILayout.BeginHorizontal(); GUILayout.Label("To apply the next setting press \"rebuild ocean\" and wait"); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Keep in mind this saves your current settings"); GUILayout.EndHorizontal(); // GUIfloat("ocean Scale", ref oceanScale, ref oceanNode.oceanScale); // GUIfloat ("WAVE_CM (default 0.23)", ref WAVE_CM, ref oceanNode.WAVE_CM); // GUIfloat ("WAVE_KM (default 370)", ref WAVE_KM, ref oceanNode.WAVE_KM); GUIfloat("AMP (default 1)", ref AMP, ref oceanNode.AMP); GUIfloat("wind Speed", ref m_windSpeed, ref oceanNode.m_windSpeed); GUIfloat("omega: inverse wave age", ref m_omega, ref oceanNode.m_omega); GUIfloat("foamMipMapBias", ref m_foamMipMapBias, ref oceanNode.m_foamMipMapBias); GUIint("m_ansio", ref m_ansio, ref oceanNode.m_ansio, 1); GUIint("m_foamAnsio", ref m_foamAnsio, ref oceanNode.m_foamAnsio, 1); GUILayout.BeginHorizontal(); GUILayout.Label("Performance settings"); GUILayout.EndHorizontal(); GUIint("m_varianceSize (sun reflection, power of 2)", ref m_varianceSize, ref oceanNode.m_varianceSize, 1); GUILayout.BeginHorizontal(); GUILayout.Label("m_varianceSize increases rebuild time exponentially"); GUILayout.EndHorizontal(); GUIint("Ocean mesh resolution (lower is better)", ref m_resolution, ref oceanNode.m_resolution, 1); GUILayout.BeginHorizontal(); GUILayout.Label("current fourierGridSize: " + Core.Instance.m_fourierGridSize.ToString()); GUILayout.EndHorizontal(); //GUIint("Ocean renderqueue", ref oceanRenderQueue, ref oceanRenderQueue,1); } GUILayout.EndScrollView(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Rebuild ocean")) { Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.GetOceanNode().saveToConfigNode(); Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.reBuildOcean(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Save ocean")) { Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.GetOceanNode().saveToConfigNode(); } if (GUILayout.Button("Load ocean")) { Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.GetOceanNode().loadFromConfigNode(); getSettingsFromOceanNode(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label(".cfg file used:"); GUILayout.TextField(Core.Instance.scattererCelestialBodies [selectedPlanet].m_manager.GetOceanNode().configUrl.parent.url); GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal(); if (GUILayout.Button("Toggle WireFrame")) { if (wireFrame) { if (Core.Instance.nearCamera.gameObject.GetComponent(typeof(Wireframe))) { Component.Destroy(Core.Instance.nearCamera.gameObject.GetComponent(typeof(Wireframe))); } if (Core.Instance.farCamera.gameObject.GetComponent(typeof(Wireframe))) { Component.Destroy(Core.Instance.farCamera.gameObject.GetComponent(typeof(Wireframe))); } if (Core.Instance.scaledSpaceCamera.gameObject.GetComponent(typeof(Wireframe))) { Component.Destroy(Core.Instance.scaledSpaceCamera.gameObject.GetComponent(typeof(Wireframe))); } wireFrame = false; } else { Core.Instance.nearCamera.gameObject.AddComponent(typeof(Wireframe)); Core.Instance.farCamera.gameObject.AddComponent(typeof(Wireframe)); Core.Instance.scaledSpaceCamera.gameObject.AddComponent(typeof(Wireframe)); wireFrame = true; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Reload shader bundles")) { ShaderReplacer.Instance.LoadAssetBundle(); } GUILayout.EndHorizontal(); } } else { GUILayout.Label(String.Format("Inactive in tracking station and VAB/SPH")); GUILayout.EndHorizontal(); } GUI.DragWindow(); }