|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
using ProceduralWorlds.HDRPTOD;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#if FLORA_PRESENT
|
|
|
|
|
|
using ProceduralWorlds.Flora;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
using UnityEngine.Events;
|
|
|
|
|
|
using UnityEngine.Rendering;
|
|
|
|
|
|
using UnityEngine.SceneManagement;
|
|
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
|
using UnityStandardAssets.Characters.ThirdPerson;
|
|
|
|
|
|
using UnityStandardAssets.Vehicles.Car;
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
using UnityEngine.Rendering.HighDefinition;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
using UnityEngine.Rendering.Universal;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
using UnityEngine.Rendering.PostProcessing;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
namespace Gaia
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Handy FPS and device capabilities class.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class PhotoMode : MonoBehaviour
|
|
|
|
|
|
{
|
|
|
|
|
|
public static PhotoMode Instance
|
|
|
|
|
|
{
|
|
|
|
|
|
get { return m_instance; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[SerializeField] private static PhotoMode m_instance;
|
|
|
|
|
|
|
|
|
|
|
|
public static List<PhotoModeUIHelper> CurrentRuntimeUIElements = new List<PhotoModeUIHelper>();
|
|
|
|
|
|
|
|
|
|
|
|
#region Variables
|
|
|
|
|
|
|
|
|
|
|
|
public PhotoModeProfile m_photoModeProfile;
|
|
|
|
|
|
public List<PhotoModeProfile> m_photoModeProfiles = new List<PhotoModeProfile>();
|
|
|
|
|
|
public List<PhotoModeImages> m_uiImages = new List<PhotoModeImages>();
|
|
|
|
|
|
public PhotoModeUIHelper m_runtimeUIPrefab = null;
|
|
|
|
|
|
private PhotoModeValues m_photoModeValues = new PhotoModeValues();
|
|
|
|
|
|
private PhotoModeValues m_savedPhotoModeValues = new PhotoModeValues();
|
|
|
|
|
|
private PhotoModeMinAndMaxValues m_minAndMaxValues = new PhotoModeMinAndMaxValues();
|
|
|
|
|
|
//System bools
|
|
|
|
|
|
private bool m_isSettingValues = false;
|
|
|
|
|
|
private bool m_isUpdatingValues = false;
|
|
|
|
|
|
private bool m_pwWeatherPresent = false;
|
|
|
|
|
|
private bool m_hdrpTimeOfDay = false;
|
|
|
|
|
|
private bool m_unitySkyboxPresent = false;
|
|
|
|
|
|
private bool m_lastTerrainCullingValue = true;
|
|
|
|
|
|
//Components
|
|
|
|
|
|
public Camera m_targetCamera = null;
|
|
|
|
|
|
private bool m_photoModeCameraInstantiated = false;
|
|
|
|
|
|
private ScreenShotter m_screenShotter;
|
|
|
|
|
|
private GaiaConstants.EnvironmentRenderer m_renderPipeline = GaiaConstants.EnvironmentRenderer.BuiltIn;
|
|
|
|
|
|
private int m_savedLightingProfileIndex;
|
|
|
|
|
|
private Light m_mainSunLight;
|
|
|
|
|
|
private Terrain m_activeTerrain;
|
|
|
|
|
|
private SceneProfile m_sceneProfile;
|
|
|
|
|
|
private Material m_unitySkybox;
|
|
|
|
|
|
private UIConfiguration m_gaiaUI;
|
|
|
|
|
|
|
|
|
|
|
|
#region New Photo Mode
|
|
|
|
|
|
|
|
|
|
|
|
public Text m_selectedPanelText;
|
|
|
|
|
|
public List<PhotoModePanel> m_panelButtons = new List<PhotoModePanel>();
|
|
|
|
|
|
public PhotoModePanelTransformSettings m_transformSettings = new PhotoModePanelTransformSettings();
|
|
|
|
|
|
public ScrollRect m_scrollRect;
|
|
|
|
|
|
public GameObject m_reticule;
|
|
|
|
|
|
public GameObject m_ruleOfThirds;
|
|
|
|
|
|
public GameObject m_optionsPanel;
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region FPS Variables
|
|
|
|
|
|
|
|
|
|
|
|
public int FPS
|
|
|
|
|
|
{
|
|
|
|
|
|
get { return (int)m_currentFps; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public Color m_30FPSColor = Color.red;
|
|
|
|
|
|
public Color m_60FPSColor = Color.yellow;
|
|
|
|
|
|
public Color m_120FPSColor = Color.green;
|
|
|
|
|
|
public Color m_maxFPSColor = Color.white;
|
|
|
|
|
|
|
|
|
|
|
|
//private const string m_cFormat = "FPS {0}, MS {1:0.00}";
|
|
|
|
|
|
private const string m_cFormat = "FPS {0}";
|
|
|
|
|
|
private const float m_cMeasurePeriod = 1f;
|
|
|
|
|
|
private float m_currentFps;
|
|
|
|
|
|
//private float m_currentMs;
|
|
|
|
|
|
private float m_fpsAccumulator = 0;
|
|
|
|
|
|
private float m_fpsNextPeriod = 0;
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region System Metrics UX
|
|
|
|
|
|
|
|
|
|
|
|
public Text m_fpsText;
|
|
|
|
|
|
public Text m_StormVersionText;
|
|
|
|
|
|
public Text m_OSText;
|
|
|
|
|
|
public Text m_deviceText;
|
|
|
|
|
|
public Text m_systemText;
|
|
|
|
|
|
public Text m_gpuText;
|
|
|
|
|
|
public Text m_gpuCapabilitiesText;
|
|
|
|
|
|
public Text m_screenInfoText;
|
|
|
|
|
|
|
|
|
|
|
|
private string m_stormVersion;
|
|
|
|
|
|
private string m_OS;
|
|
|
|
|
|
private string m_deviceName;
|
|
|
|
|
|
private string m_deviceType;
|
|
|
|
|
|
private string m_deviceModel;
|
|
|
|
|
|
private string m_platform;
|
|
|
|
|
|
private string m_processor;
|
|
|
|
|
|
private string m_ram;
|
|
|
|
|
|
private string m_gpu;
|
|
|
|
|
|
private string m_gpuDevice;
|
|
|
|
|
|
private string m_gpuSpec;
|
|
|
|
|
|
private string m_gpuCapabilities;
|
|
|
|
|
|
private string m_screenInfo;
|
|
|
|
|
|
private string m_quality;
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Photo Mode Settings
|
|
|
|
|
|
|
|
|
|
|
|
public Text m_screenshotText;
|
|
|
|
|
|
private PhotoModeUIHelper m_photoModeHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_screenshotResolution = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_screenshotImageFormat = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_loadSavedSettings = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_resetPhotoModeOnDisable = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_showFPS = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_showReticule = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_showRuleOfThirds = null;
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Unity Settings
|
|
|
|
|
|
|
|
|
|
|
|
private PhotoModeUIHelper m_unityVolume = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_unityLODBias = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_unityVSync = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_unityTargetFPS = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_unityAA = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_unityShadowDistance = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_unityShadownResolution = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_unityShadowCascades = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_fieldOfView = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_cameraRoll = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_cullingDistance = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_unitySettingsGeneralHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_unitySettingsShadowHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_unitySettingsVSyncHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_cameraSettingsGeneralHeader = null;
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Streaming Settings
|
|
|
|
|
|
|
|
|
|
|
|
public RectTransform m_streamingSettingsArea = null;
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
private TerrainLoader m_terrainLoader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaLoadRange = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaImpostorRange = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_streamingHeader = null;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Weather Settings
|
|
|
|
|
|
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaWindDirection = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaWindSpeed = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaWindHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaWindSettingsOverride = null;
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
private ProceduralWorldsGlobalWeather m_weather = null;
|
|
|
|
|
|
private PW_VFX_Atmosphere m_atmosphere = null;
|
|
|
|
|
|
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaWeatherEnabled = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaWeatherToggleRain = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaWeatherToggleSnow = null;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Gaia Lighting Settings
|
|
|
|
|
|
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaTime = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaTimeOfDayEnabled = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaTimeScale = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaAdditionalLinearFog = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaAdditionalExponentialFog = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_lightingWeatherHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_lightingGeneralHeader = null;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaSunAngle = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaSunPitch = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaFogOverride = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaFogMode = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaFogColor = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaFogStart = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaFogEnd = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaFogDensity = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaSkyboxOverride = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaSkyboxRotation = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaSkyboxExposure = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaSkyboxTint = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaAmbientIntensity = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaSunOverride = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaSunIntensity = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaSunKelvin = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaSunColor = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_lightingFogHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_lightingSkyboxHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_lightingSunHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_lightingAmbientHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_ambientSkyColor = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_ambientEquatorColor = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_ambientGroundColor = null;
|
|
|
|
|
|
|
|
|
|
|
|
//HDRP Time Of Day
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
private PhotoModeUIHelper m_hdrpGlobalShadowMultiplier = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_hdrpGlobalFogMultiplier = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_hdrpGlobalSunMultiplier = null;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Water Settings
|
|
|
|
|
|
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaWaterheader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaUnderwaterheader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaWaterReflectionsEnabled = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaWaterReflectionDistance = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaWaterReflectionResolution = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaWaterReflectionLODBias = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaUnderwaterFogColor = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaUnderwaterFogDistance = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaUnderwaterVolume = null;
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Post FX Settings
|
|
|
|
|
|
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXExposure = null;
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2 || UPPipeline || HDPipeline
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXExposureHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFEnabled = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFAutoFocus = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFAperture = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFFocalLength = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFFocusDistance = null;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFKernelSizeBuiltIn = null;
|
|
|
|
|
|
private PostProcessLayer m_postProcessingLayer = null;
|
|
|
|
|
|
private UnityEngine.Rendering.PostProcessing.DepthOfField m_depthOfField;
|
|
|
|
|
|
#else
|
|
|
|
|
|
private PhotoModeUIHelper m_noPostProcessingHeader = null;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFModeURP = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFStartDistanceURP = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFEndDistanceURP = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFMaxRadiusURP = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFHighQualityURP = null;
|
|
|
|
|
|
private UnityEngine.Rendering.Universal.DepthOfField m_depthOfFieldURP;
|
|
|
|
|
|
private UniversalAdditionalCameraData m_urpCameraData;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFModeHDRP = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFNearStartDistanceHDRP = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFFarStartDistanceHDRP = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFNearEndDistanceHDRP = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFFarEndDistanceHDRP = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFMaxRadius = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_gaiaPostFXDOFHighQualityHDRP = null;
|
|
|
|
|
|
private UnityEngine.Rendering.HighDefinition.DepthOfField m_depthOfFieldHDRP;
|
|
|
|
|
|
private HDAdditionalCameraData m_hdrpCameraData = null;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Terrain Settings
|
|
|
|
|
|
|
|
|
|
|
|
private PhotoModeUIHelper m_terrainDetailDensity = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_terrainDetailDistance = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_terrainHeightResolution = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_terrainTextureDistance = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_terrainDrawInstanced= null;
|
|
|
|
|
|
private PhotoModeUIHelper m_terrainHeader = null;
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region HDRP Density Volume
|
|
|
|
|
|
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
private PhotoModeUIHelper m_overrideDensityVolume = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_densityVolumeAlbedoColor = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_densityVolumeFogDistance = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_densityVolumeEffectType = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_densityVolumeTilingResolution = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_densityVolumeHeader = null;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Controller Settings
|
|
|
|
|
|
|
|
|
|
|
|
public bool m_freezePlayerController = true;
|
|
|
|
|
|
public GameObject m_spawnedCamera;
|
|
|
|
|
|
private Rigidbody m_rigidBodyController;
|
|
|
|
|
|
private RigidbodyConstraints m_lastConstrants;
|
|
|
|
|
|
private MonoBehaviour m_playerController;
|
|
|
|
|
|
private MonoBehaviour m_thirdPersonBaseController;
|
|
|
|
|
|
private MonoBehaviour m_carBaseController;
|
|
|
|
|
|
private MonoBehaviour m_carAudioController;
|
|
|
|
|
|
private GameObject m_lastPlayerController;
|
|
|
|
|
|
private Camera m_lastPlayerCamera;
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Color Picker
|
|
|
|
|
|
|
|
|
|
|
|
public ColorPickerReferenceMode m_colorPickerRefMode = ColorPickerReferenceMode.FogColor;
|
|
|
|
|
|
public PhotoModeColorPicker m_colorPicker;
|
|
|
|
|
|
[HideInInspector]
|
|
|
|
|
|
public bool m_updateColorPickerRef = false;
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Grass System
|
|
|
|
|
|
|
|
|
|
|
|
#if FLORA_PRESENT
|
|
|
|
|
|
private PhotoModeUIHelper m_grassSettingsHeader = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_globalGrassDensity = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_globalGrassDistance = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_globalCameraCellDistance = null;
|
|
|
|
|
|
private PhotoModeUIHelper m_globalCameraCellSubdivision = null;
|
|
|
|
|
|
private FloraGlobalManager m_detailManager;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Unity Functions
|
|
|
|
|
|
|
|
|
|
|
|
private void Start()
|
|
|
|
|
|
{
|
|
|
|
|
|
Instantiate();
|
|
|
|
|
|
}
|
|
|
|
|
|
private void Update()
|
|
|
|
|
|
{
|
|
|
|
|
|
ProcessUpdate();
|
|
|
|
|
|
UpdateColorPicker();
|
|
|
|
|
|
}
|
|
|
|
|
|
private void OnDestroy()
|
|
|
|
|
|
{
|
|
|
|
|
|
ResetBackToDefault();
|
|
|
|
|
|
}
|
|
|
|
|
|
private void OnDisable()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaUI == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_gaiaUI.m_resetOnDisable)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
RevertPostProcessing();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Functions
|
|
|
|
|
|
|
|
|
|
|
|
#region Generic Functions
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Cloese photo mode
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public void ClosePhotoMode()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (UIConfiguration.Instance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
UIConfiguration.Instance.ExecuteShowPhotoMode();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Gets panel profile data
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="searchFor"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public PhotoModePanel GetPanelProfile(string searchFor)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_panelButtons.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (PhotoModePanel panel in m_panelButtons)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (panel.m_shownTitle.Contains(searchFor))
|
|
|
|
|
|
{
|
|
|
|
|
|
return panel;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Called when the system is loaded to setup everything
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void Instantiate()
|
|
|
|
|
|
{
|
|
|
|
|
|
m_instance = this;
|
|
|
|
|
|
#if FLORA_PRESENT
|
|
|
|
|
|
m_detailManager = FindObjectOfType<FloraGlobalManager>();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
if (UIConfiguration.Instance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_renderPipeline = UIConfiguration.RenderPipeline;
|
|
|
|
|
|
if (UIConfiguration.Instance.m_textContent.activeInHierarchy)
|
|
|
|
|
|
{
|
|
|
|
|
|
UIConfiguration.Instance.m_textContent.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_colorPicker != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_colorPicker.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_fpsNextPeriod = Time.realtimeSinceStartup + m_cMeasurePeriod;
|
|
|
|
|
|
m_lastPlayerCamera = GaiaUtils.GetCamera();
|
|
|
|
|
|
|
|
|
|
|
|
if (GaiaUtils.CheckIfSceneProfileExists(out m_sceneProfile))
|
|
|
|
|
|
{
|
|
|
|
|
|
m_lastTerrainCullingValue = m_sceneProfile.m_terrainCullingEnabled;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_lastPlayerCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!m_lastPlayerCamera.name.Contains("FlyCam"))
|
|
|
|
|
|
{
|
|
|
|
|
|
m_targetCamera = LoadPhotoModeCamera();
|
|
|
|
|
|
m_photoModeCameraInstantiated = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_targetCamera = GaiaUtils.GetCamera();
|
|
|
|
|
|
m_photoModeCameraInstantiated = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_targetCamera = GaiaUtils.GetCamera();
|
|
|
|
|
|
m_photoModeCameraInstantiated = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_playerController == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_playerController = GaiaUtils.GetPlayerControllerSystem();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_targetCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_postProcessingLayer == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_postProcessingLayer = m_targetCamera.GetComponent<PostProcessLayer>();
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_urpCameraData == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_urpCameraData = m_targetCamera.GetComponent<UniversalAdditionalCameraData>();
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
if (m_hdrpCameraData == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_hdrpCameraData = m_targetCamera.GetComponent<HDAdditionalCameraData>();
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
AssignFloraCamera(m_targetCamera);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
if (m_terrainLoader == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_targetCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_terrainLoader = m_targetCamera.GetComponent<TerrainLoader>();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_terrainLoader = FindObjectOfType<TerrainLoader>();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
m_weather = ProceduralWorldsGlobalWeather.Instance;
|
|
|
|
|
|
m_atmosphere = PW_VFX_Atmosphere.Instance;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
m_gaiaUI = UIConfiguration.Instance;
|
|
|
|
|
|
|
|
|
|
|
|
m_activeTerrain = TerrainHelper.GetActiveTerrain();
|
|
|
|
|
|
|
|
|
|
|
|
if (!VerifySystems())
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
FreezePlayerController();
|
|
|
|
|
|
SaveStartValues();
|
|
|
|
|
|
SetupSystemMetrics();
|
|
|
|
|
|
Setup();
|
|
|
|
|
|
|
|
|
|
|
|
if (m_sceneProfile != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_sceneProfile.m_terrainCullingEnabled = m_lastTerrainCullingValue;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeButtonManager buttonManager = FindObjectOfType<PhotoModeButtonManager>();
|
|
|
|
|
|
if (buttonManager != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
buttonManager.Startup();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Process the update thread
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void ProcessUpdate()
|
|
|
|
|
|
{
|
|
|
|
|
|
// measure average frames per second
|
|
|
|
|
|
if (m_photoModeValues.m_showFPS)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_fpsAccumulator++;
|
|
|
|
|
|
if (Time.realtimeSinceStartup > m_fpsNextPeriod)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_currentFps = m_fpsAccumulator / m_cMeasurePeriod;
|
|
|
|
|
|
//m_currentMs = 1000f / m_currentFps;
|
|
|
|
|
|
m_fpsAccumulator = 0f;
|
|
|
|
|
|
m_fpsNextPeriod = Time.realtimeSinceStartup + m_cMeasurePeriod;
|
|
|
|
|
|
if (m_fpsText != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_currentFps < 30)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_fpsText.color = m_30FPSColor;
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (m_currentFps < 60)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_fpsText.color = m_60FPSColor;
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (m_currentFps < 120)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_fpsText.color = m_120FPSColor;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_fpsText.color = m_maxFPSColor;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_fpsText.text = string.Format(m_cFormat, m_currentFps);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//Update the UI
|
|
|
|
|
|
UpdateUI();
|
|
|
|
|
|
GaiaAPI.SaveImportantPhotoModeValues(m_photoModeValues, m_renderPipeline);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Assigns the camera for Flora Tiles
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="camera"></param>
|
|
|
|
|
|
private void AssignFloraCamera(Camera camera)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if FLORA_PRESENT
|
|
|
|
|
|
if (m_detailManager != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
FloraTerrainTile[] tiles = FindObjectsOfType<FloraTerrainTile>();
|
|
|
|
|
|
if (tiles.Length > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (FloraTerrainTile tile in tiles)
|
|
|
|
|
|
{
|
|
|
|
|
|
tile.DetailCamera = camera;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Loads the photo mode camera
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private Camera LoadPhotoModeCamera()
|
|
|
|
|
|
{
|
|
|
|
|
|
Camera camera = null;
|
|
|
|
|
|
if (m_spawnedCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
camera = Instantiate(m_spawnedCamera).GetComponent<Camera>();
|
|
|
|
|
|
GaiaAPI.SetRuntimePlayerAndCamera(camera.gameObject, camera, false);
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.CopyCameraSettings(m_lastPlayerCamera, camera);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.CopyCameraSettingsURP(m_lastPlayerCamera, camera);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
GaiaAPI.CopyCameraSettingsHDRP(m_lastPlayerCamera, camera);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return camera;
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Removes photo mode camera from the scene
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void RemovePhotoModeCamera()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_targetCamera != null && m_photoModeCameraInstantiated)
|
|
|
|
|
|
{
|
|
|
|
|
|
DestroyImmediate(m_targetCamera.gameObject);
|
|
|
|
|
|
if (m_lastPlayerController != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_lastPlayerCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
AssignFloraCamera(m_lastPlayerCamera);
|
|
|
|
|
|
GaiaAPI.SetRuntimePlayerAndCamera(m_lastPlayerController, m_lastPlayerCamera, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_lastPlayerCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetRuntimePlayerAndCamera(m_lastPlayerCamera.gameObject, m_lastPlayerCamera, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Freezes the player controller
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void FreezePlayerController()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_freezePlayerController)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_lastPlayerController = GaiaUtils.GetPlayerGameObject();
|
|
|
|
|
|
if (m_lastPlayerController != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_lastPlayerController.name.Contains("FlyCam"))
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_rigidBodyController = m_lastPlayerController.GetComponent<Rigidbody>();
|
|
|
|
|
|
if (m_rigidBodyController == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_rigidBodyController = GetComponentInChildren<Rigidbody>();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_rigidBodyController != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_lastConstrants = m_rigidBodyController.constraints;
|
|
|
|
|
|
m_rigidBodyController.constraints = RigidbodyConstraints.FreezeAll;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_lastPlayerController.name.Contains("ThirdPersonController"))
|
|
|
|
|
|
{
|
|
|
|
|
|
m_thirdPersonBaseController = m_lastPlayerController.GetComponent<ThirdPersonUserControl>();
|
|
|
|
|
|
if (m_thirdPersonBaseController == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_thirdPersonBaseController = m_lastPlayerController.GetComponentInChildren<ThirdPersonUserControl>();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_thirdPersonBaseController != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_thirdPersonBaseController.enabled = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (m_lastPlayerController.name.Contains("Gaia Car"))
|
|
|
|
|
|
{
|
|
|
|
|
|
m_carBaseController = m_lastPlayerController.GetComponent<CarUserControl>();
|
|
|
|
|
|
if (m_carBaseController == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_carBaseController = m_lastPlayerController.GetComponentInChildren<CarUserControl>();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_carBaseController != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_carBaseController.enabled = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_carAudioController = m_lastPlayerController.GetComponent<CarAudio>();
|
|
|
|
|
|
if (m_carAudioController == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_carAudioController = m_lastPlayerController.GetComponentInChildren<CarAudio>();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_carAudioController != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_carAudioController.enabled = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_playerController != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_playerController.enabled = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_lastPlayerCamera = GaiaUtils.GetCamera();
|
|
|
|
|
|
if (m_lastPlayerCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_targetCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_targetCamera.transform.SetPositionAndRotation(m_lastPlayerCamera.transform.position, m_lastPlayerCamera.transform.rotation);
|
|
|
|
|
|
}
|
|
|
|
|
|
m_lastPlayerCamera.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Un-freezes the player controller
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void UnFreezePlayerController()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_freezePlayerController)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_rigidBodyController != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_rigidBodyController.constraints = m_lastConstrants;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_thirdPersonBaseController != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_thirdPersonBaseController.enabled = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_playerController != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_playerController.enabled = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_carBaseController != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_carBaseController.enabled = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_carAudioController != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_carAudioController.enabled = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_lastPlayerCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_lastPlayerCamera.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Setup Functions
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Setup function used to load settings and variables and creates the UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public void Setup()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!VerifySystems())
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("Verifying Photo Mode UI failed, maybe something is null, checked the photo mode prefab to make sure nothing has been assigned.");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.m_runtimeUIPrefab = m_runtimeUIPrefab;
|
|
|
|
|
|
PhotoMode.CurrentRuntimeUIElements.Clear();
|
|
|
|
|
|
|
|
|
|
|
|
//Is present
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
m_weather = ProceduralWorldsGlobalWeather.Instance;
|
|
|
|
|
|
m_pwWeatherPresent = m_weather != null;
|
|
|
|
|
|
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER
|
|
|
|
|
|
m_hdrpTimeOfDay = HDRPTimeOfDay.Instance;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
if (m_screenShotter == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter = FindObjectOfType<ScreenShotter>();
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_screenShotter != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_screenshotText != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenshotText.text = string.Format("Screenshot {0}", m_screenShotter.m_screenShotKey);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
List<Transform> prefabs = new List<Transform>(3);
|
|
|
|
|
|
if (m_runtimeUIPrefab != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
prefabs.Add(m_runtimeUIPrefab.transform);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_runtimeUIPrefab != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
prefabs.Add(m_runtimeUIPrefab.transform);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_runtimeUIPrefab != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
prefabs.Add(m_runtimeUIPrefab.transform);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//Clear current
|
|
|
|
|
|
PhotoModeUtils.RemoveAllChildren(m_transformSettings.m_photoMode, prefabs);
|
|
|
|
|
|
PhotoModeUtils.RemoveAllChildren(m_transformSettings.m_camera, prefabs);
|
|
|
|
|
|
PhotoModeUtils.RemoveAllChildren(m_transformSettings.m_unity, prefabs);
|
|
|
|
|
|
PhotoModeUtils.RemoveAllChildren(m_transformSettings.m_terrain, prefabs);
|
|
|
|
|
|
PhotoModeUtils.RemoveAllChildren(m_transformSettings.m_lighting, prefabs);
|
|
|
|
|
|
PhotoModeUtils.RemoveAllChildren(m_transformSettings.m_water, prefabs);
|
|
|
|
|
|
PhotoModeUtils.RemoveAllChildren(m_transformSettings.m_postFX, prefabs);
|
|
|
|
|
|
|
|
|
|
|
|
//Create new runtime UI
|
|
|
|
|
|
CreatePhotoModeSettingsUI();
|
|
|
|
|
|
CreateUnitySettingsUI();
|
|
|
|
|
|
CreateCameraSettingsUI();
|
|
|
|
|
|
CreateWaterSettingsUI();
|
|
|
|
|
|
CreatePostFXSettingsUI();
|
|
|
|
|
|
CreateTerrainSettingsUI();
|
|
|
|
|
|
CreateLightingSettingsUI();
|
|
|
|
|
|
CreateGrassSettingsUI();
|
|
|
|
|
|
CreateStreamingSettingsUI();
|
|
|
|
|
|
|
|
|
|
|
|
//Load From Profile
|
|
|
|
|
|
if (m_gaiaUI != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaUI.m_loadFromLastSaved)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_sceneProfile != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeProfile != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
bool save = false;
|
|
|
|
|
|
if (m_photoModeProfile.m_everBeenSaved)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeProfile.LastRenderPipeline == m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeValues values = GaiaAPI.LoadPhotoModeValues();
|
|
|
|
|
|
if (values != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (values.m_selectedGaiaLightingProfile == m_sceneProfile.m_selectedLightingProfileValuesIndex)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (values.m_lastSceneName == SceneManager.GetActiveScene().name)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.Load(values);
|
|
|
|
|
|
RefreshAllUI();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
save = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
save = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (save)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SavePhotoModeValues(m_photoModeValues, m_renderPipeline);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Sets all the system metrics data
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public void SetupSystemMetrics()
|
|
|
|
|
|
{
|
|
|
|
|
|
//Grab information about the system
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
m_stormVersion = "Unity v" + Application.unityVersion;
|
|
|
|
|
|
m_deviceName = SystemInfo.deviceName;
|
|
|
|
|
|
m_deviceType = SystemInfo.deviceType.ToString();
|
|
|
|
|
|
m_OS = SystemInfo.operatingSystem;
|
|
|
|
|
|
m_platform = Application.platform.ToString();
|
|
|
|
|
|
m_processor = SystemInfo.processorType + " - " + SystemInfo.processorCount + " cores";
|
|
|
|
|
|
m_gpu = SystemInfo.graphicsDeviceName;
|
|
|
|
|
|
m_gpuDevice = SystemInfo.graphicsDeviceType + " - " + SystemInfo.graphicsDeviceVersion;
|
|
|
|
|
|
m_gpuCapabilities = "";
|
|
|
|
|
|
m_gpuCapabilities += "TA: " + SystemInfo.supports2DArrayTextures.ToString();
|
|
|
|
|
|
m_gpuCapabilities += ", MT: " + SystemInfo.maxTextureSize.ToString();
|
|
|
|
|
|
m_gpuCapabilities += ", NPOT: " + SystemInfo.npotSupport.ToString();
|
|
|
|
|
|
m_gpuCapabilities += ", RTC: " + SystemInfo.supportedRenderTargetCount.ToString();
|
|
|
|
|
|
m_gpuCapabilities += ", CT: " + SystemInfo.copyTextureSupport.ToString();
|
|
|
|
|
|
|
|
|
|
|
|
int sm = SystemInfo.graphicsShaderLevel;
|
|
|
|
|
|
if (sm >= 10 && sm <= 99)
|
|
|
|
|
|
{
|
|
|
|
|
|
// getting first and second digits from sm
|
|
|
|
|
|
m_gpuSpec = "SM: " + (sm /= 10) + '.' + (sm / 10);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gpuSpec = "SM: N/A";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int vram = SystemInfo.graphicsMemorySize;
|
|
|
|
|
|
if (vram > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gpuSpec += ", VRAM: " + vram + " MB";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gpuSpec += ", VRAM: " + vram + " N/A";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int ram = SystemInfo.systemMemorySize;
|
|
|
|
|
|
if (ram > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_ram = ram.ToString();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_ram = "N/A";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Resolution res = Screen.currentResolution;
|
|
|
|
|
|
m_screenInfo = res.width + "x" + res.height + " @" + res.refreshRate + " Hz [window size: " +
|
|
|
|
|
|
Screen.width + "x" + Screen.height;
|
|
|
|
|
|
float dpi = Screen.dpi;
|
|
|
|
|
|
if (dpi > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenInfo += ", DPI: " + dpi + "]";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenInfo += "]";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_deviceModel = SystemInfo.deviceModel;
|
|
|
|
|
|
m_quality = QualitySettings.GetQualityLevel().ToString();
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.Log("Problem getting system metrics : " + ex.Message);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//Update UX if it is there
|
|
|
|
|
|
if (m_StormVersionText != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_StormVersionText.text = PhotoModeUtils.UpdateWrap(m_stormVersion);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_OSText != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_OSText.text = PhotoModeUtils.UpdateWrap(m_OS);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_deviceText != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_deviceText.text = PhotoModeUtils.UpdateWrap(m_deviceName + ", " + m_platform + ", " + m_deviceType);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_systemText != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_systemText.text = PhotoModeUtils.UpdateWrap(m_deviceModel + ", " + m_processor + ", " + m_ram + " GB");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gpuText != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gpuText.text = PhotoModeUtils.UpdateWrap(m_gpu + ", " + m_gpuSpec + ", QUAL: " + m_quality);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gpuCapabilitiesText != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gpuCapabilitiesText.text = PhotoModeUtils.UpdateWrap(m_gpuDevice + ", " + m_gpuCapabilities);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_screenInfoText != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenInfoText.text = PhotoModeUtils.UpdateWrap(m_screenInfo);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Updates the Runtime UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public void UpdateUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
m_isUpdatingValues = true;
|
|
|
|
|
|
|
|
|
|
|
|
if (m_sceneProfile == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_sceneProfile.m_selectedLightingProfileValuesIndex != m_savedLightingProfileIndex)
|
|
|
|
|
|
{
|
|
|
|
|
|
SaveStartValues();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
if (m_sceneProfile.m_lightSystemMode == GaiaConstants.GlobalSystemMode.Gaia)
|
|
|
|
|
|
{
|
|
|
|
|
|
bool skyIsSet =
|
|
|
|
|
|
m_sceneProfile.m_lightingProfiles[m_sceneProfile.m_selectedLightingProfileValuesIndex]
|
|
|
|
|
|
.m_profileType == GaiaConstants.GaiaLightingProfileType.ProceduralWorldsSky;
|
|
|
|
|
|
if (skyIsSet != m_pwWeatherPresent && m_renderPipeline != GaiaConstants.EnvironmentRenderer.HighDefinition)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_pwWeatherPresent = skyIsSet;
|
|
|
|
|
|
m_weather = ProceduralWorldsGlobalWeather.Instance;
|
|
|
|
|
|
SetMetricsParent(false, m_transformSettings.m_photoMode);
|
|
|
|
|
|
Setup();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (skyIsSet != m_hdrpTimeOfDay)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_hdrpTimeOfDay = skyIsSet;
|
|
|
|
|
|
SetMetricsParent(false, m_transformSettings.m_photoMode);
|
|
|
|
|
|
Setup();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_pwWeatherPresent)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaTimeOfDay tod = m_sceneProfile.m_gaiaTimeOfDay;
|
|
|
|
|
|
if (m_photoModeValues.m_gaiaTimeOfDayEnabled != tod.m_todEnabled)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaTimeOfDayEnabled(PhotoModeUtils.ConvertBoolToInt(tod.m_todEnabled));
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_photoModeValues.m_gaiaTimeScale != tod.m_todDayTimeScale)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaTimeScale(tod.m_todDayTimeScale);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (tod.m_todEnabled)
|
|
|
|
|
|
{
|
|
|
|
|
|
float t = tod.m_todHour + (tod.m_todMinutes / 60f);
|
|
|
|
|
|
if (m_photoModeValues.m_gaiaTime != t)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaTime(t);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (m_hdrpTimeOfDay)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER
|
|
|
|
|
|
HDRPTimeOfDayAPI.GetAutoUpdateMultiplier(out bool autoUpdate, out float autoUpdateValue);
|
|
|
|
|
|
if (m_photoModeValues.m_gaiaTimeOfDayEnabled != autoUpdate)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaTimeOfDayEnabled(PhotoModeUtils.ConvertBoolToInt(autoUpdate));
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_photoModeValues.m_gaiaTimeScale != autoUpdateValue)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaTimeScale(autoUpdateValue);
|
|
|
|
|
|
}
|
|
|
|
|
|
SetGaiaTime(HDRPTimeOfDayAPI.GetCurrentTime());
|
|
|
|
|
|
m_gaiaTime.SyncHDRPTimeOfDay();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_weather != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeValues.m_gaiaWeatherEnabled != (m_weather.EnableRain && m_weather.EnableSnow))
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaWeatherEnabled(PhotoModeUtils.ConvertBoolToInt(m_weather.EnableRain || m_weather.EnableSnow));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_photoModeValues.m_gaiaWeatherRain != m_weather.IsRaining)
|
|
|
|
|
|
{
|
|
|
|
|
|
OnSetRain(m_weather.IsRaining, true);
|
|
|
|
|
|
m_photoModeValues.m_gaiaWeatherRain = m_weather.IsRaining;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_photoModeValues.m_gaiaWeatherSnow != m_weather.IsSnowing)
|
|
|
|
|
|
{
|
|
|
|
|
|
OnSetSnow(m_weather.IsSnowing, true);
|
|
|
|
|
|
m_photoModeValues.m_gaiaWeatherSnow = m_weather.IsSnowing;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_photoModeValues.m_gaiaWindDirection != m_weather.WindDirection)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaWindDirection(m_weather.WindDirection);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_photoModeValues.m_gaiaWindSpeed != m_weather.WindSpeed)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaWindSpeed(m_weather.WindSpeed);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
if (m_gaiaUI.m_loadFromLastSaved)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SavePhotoModeValues(m_photoModeValues, m_renderPipeline);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isUpdatingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Sets the new min/max values for photo mode
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="values"></param>
|
|
|
|
|
|
public void SetMinMax(PhotoModeMinAndMaxValues values)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (values == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_minAndMaxValues.SetNewMinMaxValues(values);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Process system metrics parenting
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="parent"></param>
|
|
|
|
|
|
/// <param name="transform"></param>
|
|
|
|
|
|
private void SetMetricsParent(bool parent, RectTransform transform)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (transform == null || m_transformSettings.m_photoMode == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (parent)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_StormVersionText.transform.SetParent(m_transformSettings.m_photoMode);
|
|
|
|
|
|
m_OSText.transform.SetParent(m_transformSettings.m_photoMode);
|
|
|
|
|
|
m_deviceText.transform.SetParent(m_transformSettings.m_photoMode);
|
|
|
|
|
|
m_systemText.transform.SetParent(m_transformSettings.m_photoMode);
|
|
|
|
|
|
m_gpuText.transform.SetParent(m_transformSettings.m_photoMode);
|
|
|
|
|
|
m_gpuCapabilitiesText.transform.SetParent(m_transformSettings.m_photoMode);
|
|
|
|
|
|
m_screenInfoText.transform.SetParent(m_transformSettings.m_photoMode);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_StormVersionText.transform.SetParent(null);
|
|
|
|
|
|
m_OSText.transform.SetParent(null);
|
|
|
|
|
|
m_deviceText.transform.SetParent(null);
|
|
|
|
|
|
m_systemText.transform.SetParent(null);
|
|
|
|
|
|
m_gpuText.transform.SetParent(null);
|
|
|
|
|
|
m_gpuCapabilitiesText.transform.SetParent(null);
|
|
|
|
|
|
m_screenInfoText.transform.SetParent(null);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Creates photo mode UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void CreatePhotoModeSettingsUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_transformSettings.m_photoMode != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_screenShotter != null && m_gaiaUI != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_screenShotter.m_useScreenSize)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_screenshotResolution = 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_screenshotResolution = (int) m_screenShotter.m_screenshotResolution;
|
|
|
|
|
|
m_photoModeValues.m_screenshotResolution++;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_screenshotImageFormat = (int)m_screenShotter.m_imageFormat;
|
|
|
|
|
|
|
|
|
|
|
|
GaiaAPI.GetPhotoModeSettings(out m_photoModeValues.m_loadSavedSettings, out m_photoModeValues.m_revertOnDisabled, out m_photoModeValues.m_showReticle, out m_photoModeValues.m_showRuleOfThirds, out m_gaiaUI.m_enablePhotoMode);
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_photoModeHeader, m_transformSettings.m_photoMode, "General Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_screenshotResolution, m_transformSettings.m_photoMode, "Screenshot Res.", m_photoModeValues.m_screenshotResolution, SetUnityScreenshotResolution, m_photoModeValues.GetScreenResolutionOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_screenshotImageFormat, m_transformSettings.m_photoMode, "Screenshot Format", m_photoModeValues.m_screenshotImageFormat, SetUnityScreenshotImageFormat, m_photoModeValues.GetScreenshotFormatOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_showFPS, m_transformSettings.m_photoMode, "Show FPS", m_photoModeValues.m_showFPS, SetPhotoModeShowFPS, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_showReticule, m_transformSettings.m_photoMode, "Show Reticule", m_photoModeValues.m_showReticle, SetPhotoModeShowReticule, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_showRuleOfThirds, m_transformSettings.m_photoMode, "Show Rule Of Thirds", m_photoModeValues.m_showRuleOfThirds, SetPhotoModeShowRuleOfThirds, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_loadSavedSettings, m_transformSettings.m_photoMode, "Load Last Settings", m_photoModeValues.m_loadSavedSettings, SetPhotoModeLoadSettings, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_resetPhotoModeOnDisable, m_transformSettings.m_photoMode, "Reset When Closed", m_photoModeValues.m_revertOnDisabled, SetPhotoModeRevertOnDisabledSettings, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
//SetMetricsParent(true, m_transformSettings.m_photoMode);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Creates unity UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void CreateUnitySettingsUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_transformSettings.m_unity != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_vSync = QualitySettings.vSyncCount;
|
|
|
|
|
|
m_photoModeValues.m_targetFPS = Application.targetFrameRate;
|
|
|
|
|
|
m_photoModeValues.m_globalVolume = AudioListener.volume;
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_lodBias = QualitySettings.lodBias;
|
|
|
|
|
|
m_photoModeValues.m_shadowDistance = QualitySettings.shadowDistance;
|
|
|
|
|
|
m_photoModeValues.m_shadowCascades = QualitySettings.shadowCascades;
|
|
|
|
|
|
m_photoModeValues.m_shadowResolution = (int)QualitySettings.shadowResolution;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
m_photoModeValues.m_lodBias = QualitySettings.lodBias;
|
|
|
|
|
|
m_photoModeValues.m_shadowDistance = GaiaAPI.GetURPShadowDistance();
|
|
|
|
|
|
m_photoModeValues.m_shadowCascades = GaiaAPI.GetURPShadowCasecade();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
m_photoModeValues.m_lodBias = GaiaAPI.GetHDRPLODBias(m_targetCamera);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_unitySettingsGeneralHeader, m_transformSettings.m_unity, "General Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_unityVolume, m_transformSettings.m_unity, "Global Volume", m_photoModeValues.m_globalVolume, m_minAndMaxValues.m_globalVolume.x, m_minAndMaxValues.m_globalVolume.y, SetUnityVolume, SetUnityVolume, true);
|
|
|
|
|
|
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_unityLODBias, m_transformSettings.m_unity, "LOD Bias", m_photoModeValues.m_lodBias, m_minAndMaxValues.m_lodBias.x, m_minAndMaxValues.m_lodBias.y, SetUnityLODBias, SetUnityLODBias, true);
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_unitySettingsShadowHeader, m_transformSettings.m_unity, "Shadow Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_unityShadowDistance, m_transformSettings.m_unity, "Shadow Distance", m_photoModeValues.m_shadowDistance, m_minAndMaxValues.m_shadowDistance.x, m_minAndMaxValues.m_shadowDistance.y, SetUnityShadowDistance, SetUnityShadowDistance, true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_unityShadowCascades, m_transformSettings.m_unity, "Shadow Cascades", m_photoModeValues.m_shadowCascades, SetUnityShadowCascades, m_photoModeValues.GetShadowCascadeOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_unityShadownResolution, m_transformSettings.m_unity, "Shadow Resolution", m_photoModeValues.m_shadowResolution, SetUnityShadowResolution, m_photoModeValues.GetShadowQualityOptions(), true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_unityLODBias, m_transformSettings.m_unity, "LOD Bias", m_photoModeValues.m_lodBias, m_minAndMaxValues.m_lodBias.x, m_minAndMaxValues.m_lodBias.y, SetUnityLODBias, SetUnityLODBias, true);
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_unitySettingsShadowHeader, m_transformSettings.m_unity, "Shadow Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_unityShadowDistance, m_transformSettings.m_unity, "Shadow Distance", m_photoModeValues.m_shadowDistance, m_minAndMaxValues.m_shadowDistance.x, m_minAndMaxValues.m_shadowDistance.y, SetUnityShadowDistance, SetUnityShadowDistance, true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_unityShadowCascades, m_transformSettings.m_unity, "Shadow Cascades", m_photoModeValues.m_shadowCascades, SetUnityShadowCascades, m_photoModeValues.GetShadowCascadeOptions(), true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_unityLODBias, m_transformSettings.m_unity, "LOD Bias", m_photoModeValues.m_lodBias, 0.001f, 10f, SetUnityLODBias, SetUnityLODBias, true);
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_unitySettingsShadowHeader, m_transformSettings.m_unity, "Shadow Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_unityShadowDistance, m_transformSettings.m_unity, "Shadow Distance", m_photoModeValues.m_shadowDistance, 0, 5000, SetUnityShadowDistance, SetUnityShadowDistance, true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_unityShadowCascades, m_transformSettings.m_unity, "Shadow Cascades", m_photoModeValues.m_shadowCascades, SetUnityShadowCascades, m_photoModeValues.GetShadowCascadeOptions(), true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_unitySettingsVSyncHeader, m_transformSettings.m_unity, "V-Sync Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_unityVSync, m_transformSettings.m_unity, "V-Sync Count", m_photoModeValues.m_vSync, SetUnityVSync, m_photoModeValues.GetVsyncOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateIntSlider(ref m_unityTargetFPS, m_transformSettings.m_unity, "Target FPS", m_photoModeValues.m_targetFPS, m_minAndMaxValues.m_targetFPS.x, m_minAndMaxValues.m_targetFPS.y, SetUnityTargetFPS, SetUnityTargetFPS, true);
|
|
|
|
|
|
if (m_unityTargetFPS != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_unityTargetFPS.gameObject.SetActive(m_photoModeValues.m_vSync == 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Creates camera UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void CreateCameraSettingsUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_transformSettings.m_unity != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_vSync = QualitySettings.vSyncCount;
|
|
|
|
|
|
m_photoModeValues.m_targetFPS = Application.targetFrameRate;
|
|
|
|
|
|
m_photoModeValues.m_globalVolume = AudioListener.volume;
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_postProcessingLayer != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_antiAliasing = (int)m_postProcessingLayer.antialiasingMode;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
m_photoModeValues.m_antiAliasing = GaiaAPI.GetURPAntiAliasingMode();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
m_photoModeValues.m_antiAliasing = GaiaAPI.GetHDRPAntiAliasingMode();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_cameraSettingsGeneralHeader, m_transformSettings.m_camera, "General Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_unityAA, m_transformSettings.m_camera, "Anti-Alias Level", m_photoModeValues.m_antiAliasing, SetUnityAA, m_photoModeValues.GetAntiAliasingOptions(), true);
|
|
|
|
|
|
if (m_sceneProfile != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.GetCullingSettings(out m_photoModeValues.m_gaiaCullinDistance);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_cullingDistance, m_transformSettings.m_camera, "Extra Culling Distance", m_photoModeValues.m_gaiaCullinDistance, m_minAndMaxValues.m_gaiaCullinDistance.x, m_minAndMaxValues.m_gaiaCullinDistance.y, SetUnityCullingDistance, SetUnityCullingDistance, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_targetCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_fieldOfView = m_targetCamera.fieldOfView;
|
|
|
|
|
|
m_photoModeValues.m_farClipPlane = m_targetCamera.farClipPlane;
|
|
|
|
|
|
m_photoModeValues.m_cameraRoll = GaiaAPI.GetCameraRoll(m_targetCamera);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_fieldOfView, m_transformSettings.m_camera, "Field Of View", m_photoModeValues.m_fieldOfView, m_minAndMaxValues.m_fieldOfView.x, m_minAndMaxValues.m_fieldOfView.y, SetUnityFieldOfView, SetUnityFieldOfView, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_cameraRoll, m_transformSettings.m_camera, "Camera Roll", m_photoModeValues.m_cameraRoll, m_minAndMaxValues.m_cameraRoll.x, m_minAndMaxValues.m_cameraRoll.y, SetUnityCameraRoll, SetUnityCameraRoll, true);
|
|
|
|
|
|
GaiaAPI.SetCameraRoll(m_photoModeValues.m_cameraRoll, m_targetCamera);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_unityAA != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
m_unityAA.gameObject.SetActive(m_postProcessingLayer != null);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_unityAA != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
m_unityAA.gameObject.SetActive(m_urpCameraData != null);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_unityAA != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
m_unityAA.gameObject.SetActive(m_hdrpCameraData != null);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Creates water UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void CreateWaterSettingsUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_transformSettings.m_water != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (GaiaUtils.CheckIfSceneProfileExists())
|
|
|
|
|
|
{
|
|
|
|
|
|
SceneProfile sceneProfile = GaiaGlobal.Instance.SceneProfile;
|
|
|
|
|
|
m_photoModeValues.m_gaiaWaterReflectionEnabled = sceneProfile.m_enableReflections;
|
|
|
|
|
|
m_photoModeValues.m_gaiaWaterReflectionDistance = 0f;
|
|
|
|
|
|
m_photoModeValues.m_gaiaWaterReflectionResolution = GaiaAPI.GetWaterResolutionQuality();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_gaiaWaterheader, m_transformSettings.m_water, "Ocean Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaWaterReflectionsEnabled, m_transformSettings.m_water, "Reflections Enabled", m_photoModeValues.m_gaiaWaterReflectionEnabled, SetGaiaWaterReflectionEnabled, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaWaterReflectionResolution, m_transformSettings.m_water, "Reflection Resolution", m_photoModeValues.m_gaiaWaterReflectionResolution, SetGaiaWaterReflectionResolution, m_photoModeValues.GetWaterReflectionQualityOptions(), true);
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
m_photoModeValues.m_gaiaReflectionsLODBias = GaiaAPI.GetHDRPWaterLODBias();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaWaterReflectionLODBias, m_transformSettings.m_water, "Reflection LOD Bias", m_photoModeValues.m_gaiaReflectionsLODBias, m_minAndMaxValues.m_lodBias.x, m_minAndMaxValues.m_lodBias.y, SetGaiaWaterReflectionLODBias, SetGaiaWaterReflectionLODBias, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaWaterReflectionDistance, m_transformSettings.m_water, "Extra Reflection Distance", m_photoModeValues.m_gaiaWaterReflectionDistance, m_minAndMaxValues.m_gaiaWaterReflectionDistance.x, m_minAndMaxValues.m_gaiaWaterReflectionDistance.y, SetGaiaWaterReflectionDistance, SetGaiaWaterReflectionDistance, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (GaiaUnderwaterEffects.Instance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_gaiaUnderwaterFogColor = GaiaAPI.GetUnderwaterFogColor();
|
|
|
|
|
|
GaiaAPI.GetUnderwaterFogDensity(out m_photoModeValues.m_gaiaUnderwaterFogDensity, out m_photoModeValues.m_gaiaUnderwaterFogDistance);
|
|
|
|
|
|
m_photoModeValues.m_gaiaUnderwaterVolume = GaiaAPI.GetUnderwaterVolume();
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_gaiaUnderwaterheader, m_transformSettings.m_water, "Underwater Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateColorField(ref m_gaiaUnderwaterFogColor, m_transformSettings.m_water, "Extra Underwater Fog Color", m_photoModeValues.m_gaiaUnderwaterFogColor, false, OpenColorPickerUnderwaterFogColor, true);
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaUnderwaterFogDistance, m_transformSettings.m_water, "Underwater Fog Distance", m_photoModeValues.m_gaiaUnderwaterFogDistance, m_minAndMaxValues.m_gaiaUnderwaterFogDistance.x, m_minAndMaxValues.m_gaiaUnderwaterFogDistance.y, SetGaiaUnderwaterFogDistance, SetGaiaUnderwaterFogDistance, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (RenderSettings.fogMode)
|
|
|
|
|
|
{
|
|
|
|
|
|
case FogMode.Linear:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaUnderwaterFogDistance, m_transformSettings.m_water, "Underwater Fog Distance", m_photoModeValues.m_gaiaUnderwaterFogDistance, m_minAndMaxValues.m_gaiaUnderwaterFogDistance.x, m_minAndMaxValues.m_gaiaUnderwaterFogDistance.y, SetGaiaUnderwaterFogDistance, SetGaiaUnderwaterFogDistance, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaUnderwaterFogDistance, m_transformSettings.m_water, "Underwater Fog Distance", m_photoModeValues.m_gaiaUnderwaterFogDensity, m_minAndMaxValues.m_gaiaUnderwaterFogDensity.x, m_minAndMaxValues.m_gaiaUnderwaterFogDensity.y, SetGaiaUnderwaterFogDistance, SetGaiaUnderwaterFogDistance, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaUnderwaterVolume, m_transformSettings.m_water, "Underwater FX Volume", m_photoModeValues.m_gaiaUnderwaterVolume, 0f, 1f, SetGaiaUnderwaterVolume, SetGaiaUnderwaterVolume, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_photoModeValues.m_gaiaWaterReflectionEnabled)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaWaterReflectionLODBias != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWaterReflectionLODBias.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaWaterReflectionDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWaterReflectionDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaWaterReflectionResolution != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWaterReflectionResolution.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Creates post fx UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void CreatePostFXSettingsUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_transformSettings.m_postFX != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
bool exposureExists = GaiaAPI.GetPostFXExposure(out m_photoModeValues.m_postFXExposure);
|
|
|
|
|
|
m_depthOfField = GaiaAPI.GetDepthOfFieldSettings();
|
|
|
|
|
|
m_photoModeValues.m_autoDOFFocus = GaiaAPI.GetAutoFocusDepthOfField();
|
|
|
|
|
|
|
|
|
|
|
|
if (exposureExists && !m_pwWeatherPresent)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_gaiaPostFXExposureHeader, m_transformSettings.m_postFX, "Exposure Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXExposure, m_transformSettings.m_postFX, "Exposure", m_photoModeValues.m_postFXExposure, m_minAndMaxValues.m_postFXExposure.x, m_minAndMaxValues.m_postFXExposure.y, SetAutoExposure, SetAutoExposure, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXExposure != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXExposure.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_depthOfField != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_dofActive = m_depthOfField.active;
|
|
|
|
|
|
m_photoModeValues.m_dofFocusDistance = m_depthOfField.focusDistance.value;
|
|
|
|
|
|
m_photoModeValues.m_dofAperture = m_depthOfField.aperture.value;
|
|
|
|
|
|
m_photoModeValues.m_dofFocalLength = m_depthOfField.focalLength.value;
|
|
|
|
|
|
m_photoModeValues.m_dofKernelSize = (int)m_depthOfField.kernelSize.value;
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_gaiaPostFXDOFHeader, m_transformSettings.m_postFX, "Depth Of Field Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaPostFXDOFEnabled, m_transformSettings.m_postFX, "Enable Depth Of Field", m_photoModeValues.m_dofActive, SetDOFEnabled, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaPostFXDOFAutoFocus, m_transformSettings.m_postFX, "Auto Focus", m_photoModeValues.m_autoDOFFocus, SetDOFAutoFocusEnabled, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaPostFXDOFKernelSizeBuiltIn, m_transformSettings.m_postFX, "Blur Size", (int)m_photoModeValues.m_dofKernelSize, SetDOFKernelSize, m_photoModeValues.GetKernelSizeOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFFocusDistance, m_transformSettings.m_postFX, "Focus Distance", m_photoModeValues.m_dofFocusDistance, m_minAndMaxValues.m_postFXDOFFocusDistance.x, m_minAndMaxValues.m_postFXDOFFocusDistance.y, SetDOFFocusDistance, SetDOFFocusDistance, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFAperture, m_transformSettings.m_postFX, "Aperture", m_photoModeValues.m_dofAperture, m_minAndMaxValues.m_cameraAperture.x, m_minAndMaxValues.m_cameraAperture.y, SetDOFAperture, SetDOFAperture, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFFocalLength, m_transformSettings.m_postFX, "Focal Length", m_photoModeValues.m_dofFocalLength, m_minAndMaxValues.m_cameraFocalLength.x, m_minAndMaxValues.m_cameraFocalLength.y, SetDOFFocalLength, SetDOFFocalLength, true);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_photoModeValues.m_autoDOFFocus)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!m_photoModeValues.m_dofActive)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFKernelSizeBuiltIn != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFKernelSizeBuiltIn.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#else
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_noPostProcessingHeader, m_transformSettings.m_postFX, "No post processing was found in your scene.");
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
bool exposureExists = GaiaAPI.GetPostExposureURP(out m_photoModeValues.m_postFXExposure);
|
|
|
|
|
|
if (exposureExists)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_gaiaPostFXExposureHeader, m_transformSettings.m_postFX, "Exposure Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXExposure, m_transformSettings.m_postFX, "Exposure", m_photoModeValues.m_postFXExposure, -5f, 5f, SetAutoExposure, SetAutoExposure, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXExposure != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXExposure.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_depthOfFieldURP = GaiaAPI.GetDepthOfFieldSettingsURP();
|
|
|
|
|
|
m_photoModeValues.m_autoDOFFocus = GaiaAPI.GetAutoFocusDepthOfField();
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_dofActive = m_depthOfFieldURP.active;
|
|
|
|
|
|
m_photoModeValues.m_dofFocusModeURP = (int)m_depthOfFieldURP.mode.value;
|
|
|
|
|
|
m_photoModeValues.m_dofFocusDistance = m_depthOfFieldURP.focusDistance.value;
|
|
|
|
|
|
m_photoModeValues.m_dofAperture = m_depthOfFieldURP.aperture.value;
|
|
|
|
|
|
m_photoModeValues.m_dofFocalLength = m_depthOfFieldURP.focalLength.value;
|
|
|
|
|
|
m_photoModeValues.m_dofStartBlurURP = m_depthOfFieldURP.gaussianStart.value;
|
|
|
|
|
|
m_photoModeValues.m_dofEndBlurURP = m_depthOfFieldURP.gaussianEnd.value;
|
|
|
|
|
|
m_photoModeValues.m_dofMaxRadiusBlur = m_depthOfFieldURP.gaussianMaxRadius.value;
|
|
|
|
|
|
m_photoModeValues.m_dofHighQualityURP = m_depthOfFieldURP.highQualitySampling.value;
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_gaiaPostFXDOFHeader, m_transformSettings.m_postFX, "Depth Of Field Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaPostFXDOFEnabled, m_transformSettings.m_postFX, "Enable Depth Of Field", m_photoModeValues.m_dofActive, SetDOFEnabled, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaPostFXDOFModeURP, m_transformSettings.m_postFX, "Mode", m_photoModeValues.m_dofFocusModeURP, SetDOFModeURP, m_photoModeValues.GetDOFModeOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaPostFXDOFHighQualityURP, m_transformSettings.m_postFX, "High Quality", m_photoModeValues.m_dofHighQualityURP, SetDOFHighQualityURP, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
//Bokeh
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFStartDistanceURP, m_transformSettings.m_postFX, "Start Blur Distance", m_photoModeValues.m_dofStartBlurURP, m_minAndMaxValues.m_postFXDOFGaussianBlurStartURP.x, m_minAndMaxValues.m_postFXDOFGaussianBlurStartURP.y, SetDOFStartBlurDistance, SetDOFStartBlurDistance, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFEndDistanceURP, m_transformSettings.m_postFX, "End Blur Distance", m_photoModeValues.m_dofEndBlurURP, m_minAndMaxValues.m_postFXDOFGaussianBlurEndURP.x, m_minAndMaxValues.m_postFXDOFGaussianBlurEndURP.y, SetDOFEndBlurDistance, SetDOFEndBlurDistance, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFMaxRadiusURP, m_transformSettings.m_postFX, "Max Radius", m_photoModeValues.m_dofMaxRadiusBlur, m_minAndMaxValues.m_postFXDOFGaussianBlurMaxRadiusURP.x, m_minAndMaxValues.m_postFXDOFGaussianBlurMaxRadiusURP.y, SetDOFMaxBlurRadius, SetDOFMaxBlurRadius, true);
|
|
|
|
|
|
//Gaussian
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaPostFXDOFAutoFocus, m_transformSettings.m_postFX, "Auto Focus", m_photoModeValues.m_autoDOFFocus, SetDOFAutoFocusEnabled, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFFocusDistance, m_transformSettings.m_postFX, "Focus Distance", m_photoModeValues.m_dofFocusDistance, m_minAndMaxValues.m_postFXDOFFocusDistanceURP.x, m_minAndMaxValues.m_postFXDOFFocusDistanceURP.y, SetDOFFocusDistance, SetDOFFocusDistance, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFAperture, m_transformSettings.m_postFX, "Aperture", m_photoModeValues.m_dofAperture, m_minAndMaxValues.m_cameraAperture.x, m_minAndMaxValues.m_cameraAperture.y, SetDOFAperture, SetDOFAperture, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFFocalLength, m_transformSettings.m_postFX, "Focal Length", m_photoModeValues.m_dofFocalLength, m_minAndMaxValues.m_cameraFocalLength.x, m_minAndMaxValues.m_cameraFocalLength.y, SetDOFFocalLength, SetDOFFocalLength, true);
|
|
|
|
|
|
if (m_photoModeValues.m_autoDOFFocus)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_photoModeValues.m_dofActive)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFModeURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Bokeh
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Gaussian
|
|
|
|
|
|
if (m_gaiaPostFXDOFStartDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFStartDistanceURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFEndDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFEndDistanceURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFMaxRadiusURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFMaxRadiusURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
SetURPUIModeSetup();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
if (GaiaAPI.GetPostExposureHDRP(out m_photoModeValues.m_postFXExposure, out m_photoModeValues.m_postFXExposureMode))
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_gaiaPostFXExposureHeader, m_transformSettings.m_postFX, "Exposure Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXExposure, m_transformSettings.m_postFX, "Exposure", m_photoModeValues.m_postFXExposure, m_minAndMaxValues.m_postFXExposureHDRP.x, m_minAndMaxValues.m_postFXExposureHDRP.y, SetAutoExposure, SetAutoExposure);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXExposure != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXExposure.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_depthOfFieldHDRP = GaiaAPI.GetDepthOfFieldSettingsHDRP();
|
|
|
|
|
|
if (m_depthOfFieldHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_dofActive = m_depthOfFieldHDRP.active;
|
|
|
|
|
|
m_photoModeValues.m_dofFocusModeHDRP = (int)m_depthOfFieldHDRP.focusMode.value;
|
|
|
|
|
|
m_photoModeValues.m_dofQualityHDRP = m_depthOfFieldHDRP.quality.value;
|
|
|
|
|
|
m_photoModeValues.m_dofFocusDistance = m_depthOfFieldHDRP.focusDistance.value;
|
|
|
|
|
|
m_photoModeValues.m_dofNearBlurStart = m_depthOfFieldHDRP.nearFocusStart.value;
|
|
|
|
|
|
m_photoModeValues.m_dofNearBlurEnd = m_depthOfFieldHDRP.nearFocusEnd.value;
|
|
|
|
|
|
m_photoModeValues.m_dofFarBlurStart = m_depthOfFieldHDRP.farFocusStart.value;
|
|
|
|
|
|
m_photoModeValues.m_dofFarBlurEnd = m_depthOfFieldHDRP.farFocusEnd.value;
|
|
|
|
|
|
m_photoModeValues.m_autoDOFFocus = GaiaAPI.GetAutoFocusDepthOfField();
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_gaiaPostFXDOFHeader, m_transformSettings.m_postFX, "Depth Of Field Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaPostFXDOFEnabled, m_transformSettings.m_postFX, "Enable Depth Of Field", m_photoModeValues.m_dofActive, SetDOFEnabled, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaPostFXDOFModeHDRP, m_transformSettings.m_postFX, "Mode", m_photoModeValues.m_dofFocusModeHDRP, SetDOFModeHDRP, m_photoModeValues.GetDOFModeOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaPostFXDOFHighQualityHDRP, m_transformSettings.m_postFX, "High Quality", m_photoModeValues.m_dofQualityHDRP, SetDOFQualityHDRP, m_photoModeValues.GetDOFQualityOptions(), true);
|
|
|
|
|
|
//Physical Camera
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaPostFXDOFAutoFocus, m_transformSettings.m_postFX, "Auto Focus", m_photoModeValues.m_autoDOFFocus, SetDOFAutoFocusEnabled, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFFocusDistance, m_transformSettings.m_postFX, "Focus Distance", m_photoModeValues.m_dofFocusDistance, m_minAndMaxValues.m_postFXDOFFocusDistanceHDRP.x, m_minAndMaxValues.m_postFXDOFFocusDistanceHDRP.y, SetDOFFocusDistance, SetDOFFocusDistance, true);
|
|
|
|
|
|
if (m_hdrpCameraData != null && m_targetCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.GetHDRPCameraSettings(out m_photoModeValues.m_cameraAperture, out m_photoModeValues.m_cameraFocalLength, m_targetCamera);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFAperture, m_transformSettings.m_postFX, "Aperture", m_photoModeValues.m_cameraAperture, m_minAndMaxValues.m_cameraAperture.x, m_minAndMaxValues.m_cameraAperture.y, SetDOFAperture, SetDOFAperture, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFFocalLength, m_transformSettings.m_postFX, "Focal Length", m_photoModeValues.m_cameraFocalLength, m_minAndMaxValues.m_cameraFocalLength.x, m_minAndMaxValues.m_cameraFocalLength.y, SetDOFFocalLength, SetDOFFocalLength, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_photoModeValues.m_autoDOFFocus)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//Manual
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFNearStartDistanceHDRP, m_transformSettings.m_postFX, "Near Start Blur", m_photoModeValues.m_dofNearBlurStart, m_minAndMaxValues.m_postFXDOFNearBlurStart.x, m_minAndMaxValues.m_postFXDOFNearBlurStart.y, SetHDRPDOFNearStartBlur, SetHDRPDOFNearStartBlur, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFNearEndDistanceHDRP, m_transformSettings.m_postFX, "Near End Blur", m_photoModeValues.m_dofNearBlurEnd, m_minAndMaxValues.m_postFXDOFNearBlurEnd.x, m_minAndMaxValues.m_postFXDOFNearBlurEnd.y, SetHDRPDOFNearEndBlur, SetHDRPDOFNearEndBlur, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFFarStartDistanceHDRP, m_transformSettings.m_postFX, "Far Start Blur", m_photoModeValues.m_dofFarBlurStart, m_minAndMaxValues.m_postFXDOFFarBlurStart.x, m_minAndMaxValues.m_postFXDOFFarBlurStart.y, SetHDRPDOFFarStartBlur, SetHDRPDOFFarStartBlur, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaPostFXDOFFarEndDistanceHDRP, m_transformSettings.m_postFX, "Far End Blur", m_photoModeValues.m_dofFarBlurEnd, m_minAndMaxValues.m_postFXDOFFarBlurEnd.x, m_minAndMaxValues.m_postFXDOFFarBlurEnd.y, SetHDRPDOFFarEndBlur, SetHDRPDOFFarEndBlur, true);
|
|
|
|
|
|
|
|
|
|
|
|
SetHDRPDOFMode();
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Creates terrain UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void CreateTerrainSettingsUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_transformSettings.m_terrain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_activeTerrain = TerrainHelper.GetActiveTerrain();
|
|
|
|
|
|
if (m_activeTerrain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_terrainDetailDensity = m_activeTerrain.detailObjectDensity;
|
|
|
|
|
|
m_photoModeValues.m_terrainDetailDistance = m_activeTerrain.detailObjectDistance;
|
|
|
|
|
|
m_photoModeValues.m_terrainPixelError = m_activeTerrain.heightmapPixelError;
|
|
|
|
|
|
m_photoModeValues.m_terrainBasemapDistance = m_activeTerrain.basemapDistance;
|
|
|
|
|
|
m_photoModeValues.m_drawInstanced = m_activeTerrain.drawInstanced;
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_terrainHeader, m_transformSettings.m_terrain, "General Settings");
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_terrainDrawInstanced, m_transformSettings.m_terrain, "Draw Instanced", m_photoModeValues.m_drawInstanced, SetTerrainDrawInstanced, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_terrainHeightResolution, m_transformSettings.m_terrain, "Pixel Error", m_photoModeValues.m_terrainPixelError, m_minAndMaxValues.m_terrainPixelError.x, m_minAndMaxValues.m_terrainPixelError.y, SetTerrainHeightResolution, SetTerrainHeightResolution, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_terrainTextureDistance, m_transformSettings.m_terrain, "Base Map Distance", m_photoModeValues.m_terrainBasemapDistance, m_minAndMaxValues.m_terrainBasemapDistance.x, m_minAndMaxValues.m_terrainBasemapDistance.y, SetTerrainTextureDistance, SetTerrainTextureDistance, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_terrainDrawInstanced, m_transformSettings.m_terrain, "Draw Instanced", m_photoModeValues.m_drawInstanced, SetTerrainDrawInstanced, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
#if FLORA_PRESENT
|
|
|
|
|
|
if (m_detailManager == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
#endif
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_terrainDetailDensity, m_transformSettings.m_terrain, "Detail Density", m_photoModeValues.m_terrainDetailDensity, m_minAndMaxValues.m_terrainDetailDensity.x, m_minAndMaxValues.m_terrainDetailDensity.y, SetTerrainDetailDensity, SetTerrainDetailDensity, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_terrainDetailDistance, m_transformSettings.m_terrain, "Detail Distance", m_photoModeValues.m_terrainDetailDistance, m_minAndMaxValues.m_terrainDetailDistance.x, m_minAndMaxValues.m_terrainDetailDistance.y, SetTerrainDetailDistance, SetTerrainDetailDistance, true);
|
|
|
|
|
|
#if FLORA_PRESENT
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_terrainHeightResolution, m_transformSettings.m_terrain, "Pixel Error", m_photoModeValues.m_terrainPixelError, m_minAndMaxValues.m_terrainPixelError.x, m_minAndMaxValues.m_terrainPixelError.y, SetTerrainHeightResolution, SetTerrainHeightResolution, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_terrainTextureDistance, m_transformSettings.m_terrain, "Base Map Distance", m_photoModeValues.m_terrainBasemapDistance, m_minAndMaxValues.m_terrainBasemapDistance.x, m_minAndMaxValues.m_terrainBasemapDistance.y, SetTerrainTextureDistance, SetTerrainTextureDistance, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Creates lighting UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void CreateLightingSettingsUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_transformSettings.m_lighting != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (GaiaUtils.CheckIfSceneProfileExists())
|
|
|
|
|
|
{
|
|
|
|
|
|
m_sceneProfile = GaiaGlobal.Instance.SceneProfile;
|
|
|
|
|
|
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
if (!m_hdrpTimeOfDay)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaTimeOfDay tod = m_sceneProfile.m_gaiaTimeOfDay;
|
|
|
|
|
|
m_photoModeValues.m_gaiaTimeOfDayEnabled = tod.m_todEnabled;
|
|
|
|
|
|
m_photoModeValues.m_gaiaTime = tod.m_todHour + (tod.m_todMinutes / 60f);
|
|
|
|
|
|
m_photoModeValues.m_gaiaTimeScale = tod.m_todDayTimeScale;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER
|
|
|
|
|
|
HDRPTimeOfDay hdrpTimeOfDay = HDRPTimeOfDayAPI.GetTimeOfDay();
|
|
|
|
|
|
m_photoModeValues.m_gaiaTimeOfDayEnabled = hdrpTimeOfDay.m_enableTimeOfDaySystem;
|
|
|
|
|
|
m_photoModeValues.m_gaiaTime = hdrpTimeOfDay.TimeOfDay;
|
|
|
|
|
|
m_photoModeValues.m_gaiaTimeScale = hdrpTimeOfDay.m_timeOfDayMultiplier;
|
|
|
|
|
|
m_photoModeValues.m_sunRotation = hdrpTimeOfDay.DirectionY;
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_globalLightIntensityMultiplier = HDRPTimeOfDayAPI.GetGlobalSunMultiplier();
|
|
|
|
|
|
m_photoModeValues.m_globalFogDensityMultiplier = HDRPTimeOfDayAPI.GetGlobalFogMultiplier();
|
|
|
|
|
|
m_photoModeValues.m_globalShadowDistanceMultiplier = HDRPTimeOfDayAPI.GetGlobalShadowMultiplier();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
if (m_atmosphere != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_sunRotation = m_atmosphere == null ? 0 : m_atmosphere.m_sunRotation;
|
|
|
|
|
|
m_photoModeValues.m_gaiaAdditionalLinearFog = m_atmosphere.AdditionalFogDistanceLinear;
|
|
|
|
|
|
m_photoModeValues.m_gaiaAdditionalExponentialFog = m_atmosphere.AdditionalFogDistanceExponential;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_mainSunLight != null && !m_hdrpTimeOfDay)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_sunRotation = m_mainSunLight.transform.eulerAngles.y;
|
|
|
|
|
|
m_photoModeValues.m_sunPitch = m_mainSunLight.transform.eulerAngles.x;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#else
|
|
|
|
|
|
if (m_mainSunLight != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_sunRotation = m_mainSunLight.transform.eulerAngles.y;
|
|
|
|
|
|
m_photoModeValues.m_sunPitch = m_mainSunLight.transform.eulerAngles.x;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
GaiaAPI.GetFogSettings(out m_photoModeValues.m_fogMode, out m_photoModeValues.m_fogColor, out m_photoModeValues.m_fogDensity, out m_photoModeValues.m_fogStart, out m_photoModeValues.m_fogEnd, out m_photoModeValues.m_fogOverride);
|
|
|
|
|
|
m_photoModeValues.m_ambientIntensity = GaiaAPI.GetAmbientIntensity();
|
|
|
|
|
|
|
|
|
|
|
|
if (m_pwWeatherPresent && m_renderPipeline != GaiaConstants.EnvironmentRenderer.HighDefinition)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
m_photoModeValues.m_fogColor = ProceduralWorldsGlobalWeather.Instance.AdditionalFogColor;
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingGeneralHeader, m_transformSettings.m_lighting, "Time Of Day Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaTime, m_transformSettings.m_lighting, "Current Time", m_photoModeValues.m_gaiaTime, m_minAndMaxValues.m_gaiaTime.x, m_minAndMaxValues.m_gaiaTime.y, SetGaiaTime, SetGaiaTime, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSunAngle, m_transformSettings.m_lighting, "Sun Rotation", m_photoModeValues.m_sunRotation, m_minAndMaxValues.m_sunRotation.x, m_minAndMaxValues.m_sunRotation.y, SetGaiaSunAngle, SetGaiaSunAngle, true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaTimeOfDayEnabled, m_transformSettings.m_lighting, "Time of Day Enabled", m_photoModeValues.m_gaiaTimeOfDayEnabled, SetGaiaTimeOfDayEnabled, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaTimeScale, m_transformSettings.m_lighting, "Time Scale", m_photoModeValues.m_gaiaTimeScale, m_minAndMaxValues.m_gaiaTimeScale.x, m_minAndMaxValues.m_gaiaTimeScale.y, SetGaiaTimeScale, SetGaiaTimeScale, true);
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingFogHeader, m_transformSettings.m_lighting, "Fog Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateColorField(ref m_gaiaFogColor, m_transformSettings.m_lighting, "Extra Fog Color", m_photoModeValues.m_fogColor, false, OpenColorPickerFog, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaAdditionalLinearFog, m_transformSettings.m_lighting, "Extra Fog Distance", m_photoModeValues.m_gaiaAdditionalLinearFog, m_minAndMaxValues.m_gaiaAdditionalLinearFog.x, m_minAndMaxValues.m_gaiaAdditionalLinearFog.y, SetAdditionalLinearFog, SetAdditionalLinearFog, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaAdditionalExponentialFog, m_transformSettings.m_lighting, "Extra Fog Distance", m_photoModeValues.m_gaiaAdditionalExponentialFog, m_minAndMaxValues.m_gaiaAdditionalExponentialFog.x, m_minAndMaxValues.m_gaiaAdditionalExponentialFog.y, SetAdditionalExponentialFog, SetAdditionalExponentialFog, true);
|
|
|
|
|
|
if (RenderSettings.fogMode == FogMode.Linear)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaAdditionalLinearFog != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaAdditionalLinearFog.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaAdditionalExponentialFog != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaAdditionalExponentialFog.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaAdditionalLinearFog != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaAdditionalLinearFog.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaAdditionalExponentialFog != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaAdditionalExponentialFog.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_photoModeValues.m_gaiaTimeOfDayEnabled)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaTimeScale != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaTimeScale.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CreateWeatherSettingsUI();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
if (m_hdrpTimeOfDay)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER && GAIA_PRO_PRESENT
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingGeneralHeader, m_transformSettings.m_lighting, "Time Of Day Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaTime, m_transformSettings.m_lighting, "Current Time", m_photoModeValues.m_gaiaTime, m_minAndMaxValues.m_gaiaTime.x, m_minAndMaxValues.m_gaiaTime.y, SetGaiaTime, SetGaiaTime, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSunAngle, m_transformSettings.m_lighting, "Sun Rotation", m_photoModeValues.m_sunRotation, m_minAndMaxValues.m_sunRotation.x, m_minAndMaxValues.m_sunRotation.y, SetGaiaSunAngle, SetGaiaSunAngle, true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaTimeOfDayEnabled, m_transformSettings.m_lighting, "Time of Day Enabled", m_photoModeValues.m_gaiaTimeOfDayEnabled, SetGaiaTimeOfDayEnabled, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaTimeScale, m_transformSettings.m_lighting, "Time Scale", m_photoModeValues.m_gaiaTimeScale, m_minAndMaxValues.m_gaiaTimeScale.x, m_minAndMaxValues.m_gaiaTimeScale.y, SetGaiaTimeScale, SetGaiaTimeScale, true);
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingGeneralHeader, m_transformSettings.m_lighting, "Global Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_hdrpGlobalSunMultiplier, m_transformSettings.m_lighting, "Light Intensity Multiplier", m_photoModeValues.m_globalLightIntensityMultiplier, 0.001f, 5f, SetGlobalSunIntensity, SetGlobalSunIntensity, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_hdrpGlobalFogMultiplier, m_transformSettings.m_lighting, "Fog Density Multiplier", m_photoModeValues.m_globalFogDensityMultiplier, 0.001f, 5f, SetGlobalFogDensity, SetGlobalFogDensity, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_hdrpGlobalShadowMultiplier, m_transformSettings.m_lighting, "Shadow Distance Multiplier", m_photoModeValues.m_globalShadowDistanceMultiplier, 0.001f, 5f, SetGlobalShadowDistance, SetGlobalShadowDistance, true);
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_photoModeValues.m_gaiaTimeOfDayEnabled)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaTimeScale != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaTimeScale.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_unitySkyboxPresent = GaiaAPI.GetUnityHDRISkyboxHDRP(out m_photoModeValues.m_skyboxRotation, out m_photoModeValues.m_skyboxExposure);
|
|
|
|
|
|
GaiaAPI.GetUnityFogHDRP(out m_photoModeValues.m_fogEnd, out m_photoModeValues.m_fogColor);
|
|
|
|
|
|
GaiaAPI.GetHDRPDensityVolume(out m_photoModeValues.m_densityVolumeAlbedoColor, out m_photoModeValues.m_densityVolumeFogDistance, out m_photoModeValues.m_densityVolumeEffectType, out m_photoModeValues.m_densityVolumeTilingResolution, out m_photoModeValues.m_overrideDensityVolume);
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingAmbientHeader, m_transformSettings.m_lighting, "Ambient Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaAmbientIntensity, m_transformSettings.m_lighting, "Ambient Intensity", m_photoModeValues.m_ambientIntensity, m_minAndMaxValues.m_ambientIntensity.x, m_minAndMaxValues.m_ambientIntensity.y, SetAmbientIntensity, SetAmbientIntensity, true);
|
|
|
|
|
|
if (m_mainSunLight)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.GetUnitySunSettings(out m_photoModeValues.m_sunIntensity, out m_photoModeValues.m_sunColor, out m_photoModeValues.m_sunKelvinValue, out m_photoModeValues.m_sunOverride, m_mainSunLight);
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingSunHeader, m_transformSettings.m_lighting, "Sun Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaSunOverride, m_transformSettings.m_lighting, "Override Sun", m_photoModeValues.m_sunOverride, SetGaiaSunOverride, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSunAngle, m_transformSettings.m_lighting, "Sun Rotation", m_photoModeValues.m_sunRotation, m_minAndMaxValues.m_sunRotation.x, m_minAndMaxValues.m_sunRotation.y, SetGaiaSunAngle, SetGaiaSunAngle, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSunPitch, m_transformSettings.m_lighting, "Sun Pitch", m_photoModeValues.m_sunPitch, m_minAndMaxValues.m_sunPitch.x, m_minAndMaxValues.m_sunPitch.y, SetGaiaSunPitch, SetGaiaSunPitch, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSunIntensity, m_transformSettings.m_lighting, "Sun Intensity", m_photoModeValues.m_sunIntensity, m_minAndMaxValues.m_sunIntensityHDRP.x, m_minAndMaxValues.m_sunIntensityHDRP.y, SetGaiaSunIntensity, SetGaiaSunIntensity, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSunKelvin, m_transformSettings.m_lighting, "Sun Color (Kelvin)", m_photoModeValues.m_sunKelvinValue, m_minAndMaxValues.m_sunKelvinValue.x, m_minAndMaxValues.m_sunKelvinValue.y, SetGaiaSunKelvin, SetGaiaSunKelvin, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//Fog
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingFogHeader, m_transformSettings.m_lighting, "Fog Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaFogOverride, m_transformSettings.m_lighting, "Override Fog", m_photoModeValues.m_fogOverride, SetGaiaFogOverride, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateColorField(ref m_gaiaFogColor, m_transformSettings.m_lighting, "Fog Color", m_photoModeValues.m_fogColor, false, OpenColorPickerFog, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaFogEnd, m_transformSettings.m_lighting, "Fog Distance", m_photoModeValues.m_fogEnd, m_minAndMaxValues.m_fogEndHDRP.x, m_minAndMaxValues.m_fogEndHDRP.y, SetGaiaFogEnd, SetGaiaFogEnd, true);
|
|
|
|
|
|
|
|
|
|
|
|
//Sky
|
|
|
|
|
|
if (m_unitySkyboxPresent)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingSkyboxHeader, m_transformSettings.m_lighting, "Skybox Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaSkyboxOverride, m_transformSettings.m_lighting, "Override Skybox", m_photoModeValues.m_skyboxOverride, SetGaiaSkyboxOverride, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSkyboxRotation, m_transformSettings.m_lighting, "Skybox Rotation", m_photoModeValues.m_skyboxRotation, m_minAndMaxValues.m_skyboxRotation.x, m_minAndMaxValues.m_skyboxRotation.y, SetGaiaSkyboxRotation, SetGaiaSkyboxRotation, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSkyboxExposure, m_transformSettings.m_lighting, "Skybox Exposure", m_photoModeValues.m_skyboxExposure, m_minAndMaxValues.m_skyboxExposureHDRP.x, m_minAndMaxValues.m_skyboxExposureHDRP.y, SetGaiaSkyboxExposure, SetGaiaSkyboxExposure, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//Density Volume
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_densityVolumeHeader, m_transformSettings.m_lighting, "Density Volume Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_overrideDensityVolume, m_transformSettings.m_lighting, "Override Density Volume", m_photoModeValues.m_overrideDensityVolume, SetOverrideDensityVolume, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_densityVolumeEffectType, m_transformSettings.m_lighting, "Effect Type", m_photoModeValues.m_densityVolumeEffectType, SetDensityVolumeEffectType, m_photoModeValues.GetDensityVolumeEffectTypeOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_densityVolumeTilingResolution, m_transformSettings.m_lighting, "Tiling Resolution", m_photoModeValues.m_densityVolumeTilingResolution, SetDensityVolumeTilingResolution, m_photoModeValues.GetDensityVolumeTilingResolutionOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateColorField(ref m_densityVolumeAlbedoColor, m_transformSettings.m_lighting, "Density Albedo Color", m_photoModeValues.m_densityVolumeAlbedoColor, false, OpenColorPickerDensityAlbedo, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_densityVolumeFogDistance, m_transformSettings.m_lighting, "Fog Distance", m_photoModeValues.m_densityVolumeFogDistance, 0.01f, 1500f, SetDensityVolumeFogDistance, SetDensityVolumeFogDistance, true);
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_photoModeValues.m_overrideDensityVolume)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_densityVolumeAlbedoColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_densityVolumeAlbedoColor.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_densityVolumeFogDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_densityVolumeFogDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_densityVolumeEffectType != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_densityVolumeEffectType.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_densityVolumeTilingResolution != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_densityVolumeTilingResolution.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_unitySkybox == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_unitySkybox = RenderSettings.skybox;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_unitySkyboxPresent = GaiaAPI.GetUnityHDRISkybox(out m_photoModeValues.m_skyboxExposure, out m_photoModeValues.m_skyboxRotation, out m_photoModeValues.m_skyboxTint, out m_photoModeValues.m_skyboxOverride);
|
|
|
|
|
|
if (m_photoModeValues.m_skyboxRotation < 0f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_skyboxRotation = Mathf.Abs(m_photoModeValues.m_skyboxRotation);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GaiaAPI.GetAmbientColor(out m_photoModeValues.m_ambientSkyColor, out m_photoModeValues.m_ambientEquatorColor, out m_photoModeValues.m_ambientGroundColor);
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingAmbientHeader, m_transformSettings.m_lighting, "Ambient Settings");
|
|
|
|
|
|
if (RenderSettings.ambientMode == AmbientMode.Skybox)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaAmbientIntensity, m_transformSettings.m_lighting, "Ambient Intensity", m_photoModeValues.m_ambientIntensity, m_minAndMaxValues.m_ambientIntensity.x, m_minAndMaxValues.m_ambientIntensity.y, SetAmbientIntensity, SetAmbientIntensity, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (RenderSettings.ambientMode == AmbientMode.Trilight)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateColorField(ref m_ambientSkyColor, m_transformSettings.m_lighting, "Sky Ambient Color", m_photoModeValues.m_ambientSkyColor, true, OpenColorPickerAmbientSkyColor, true);
|
|
|
|
|
|
PhotoModeUtils.CreateColorField(ref m_ambientEquatorColor, m_transformSettings.m_lighting, "Equator Ambient Color", m_photoModeValues.m_ambientEquatorColor, true, OpenColorPickerAmbientEquatorColor, true);
|
|
|
|
|
|
PhotoModeUtils.CreateColorField(ref m_ambientGroundColor, m_transformSettings.m_lighting, "Ground Ambient Color", m_photoModeValues.m_ambientGroundColor, true, OpenColorPickerAmbientGroundColor, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateColorField(ref m_ambientSkyColor, m_transformSettings.m_lighting, "Sky Ambient Color", m_photoModeValues.m_ambientSkyColor, true, OpenColorPickerAmbientSkyColor, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_mainSunLight)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.GetUnitySunSettings(out m_photoModeValues.m_sunIntensity, out m_photoModeValues.m_sunColor, out m_photoModeValues.m_sunKelvinValue, out m_photoModeValues.m_sunOverride, m_mainSunLight);
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingSunHeader, m_transformSettings.m_lighting, "Sun Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaSunOverride, m_transformSettings.m_lighting, "Override Sun", m_photoModeValues.m_sunOverride, SetGaiaSunOverride, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSunAngle, m_transformSettings.m_lighting, "Sun Rotation", m_photoModeValues.m_sunRotation, m_minAndMaxValues.m_sunRotation.x, m_minAndMaxValues.m_sunRotation.y, SetGaiaSunAngle, SetGaiaSunAngle, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSunPitch, m_transformSettings.m_lighting, "Sun Pitch", m_photoModeValues.m_sunPitch, m_minAndMaxValues.m_sunPitch.x, m_minAndMaxValues.m_sunPitch.y, SetGaiaSunPitch, SetGaiaSunPitch, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSunIntensity, m_transformSettings.m_lighting, "Sun Intensity", m_photoModeValues.m_sunIntensity, m_minAndMaxValues.m_sunIntensity.x, m_minAndMaxValues.m_sunIntensity.y, SetGaiaSunIntensity, SetGaiaSunIntensity, true);
|
|
|
|
|
|
PhotoModeUtils.CreateColorField(ref m_gaiaSunColor, m_transformSettings.m_lighting, "Sun Color", m_photoModeValues.m_sunColor,false, OpenColorPickerSunColor, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingFogHeader, m_transformSettings.m_lighting, "Fog Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaFogOverride, m_transformSettings.m_lighting, "Override Fog", m_photoModeValues.m_fogOverride, SetGaiaFogOverride, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaFogMode, m_transformSettings.m_lighting, "Fog Mode", (int)m_photoModeValues.m_fogMode, SetGaiaFogMode, m_photoModeValues.GetFogModeOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateColorField(ref m_gaiaFogColor, m_transformSettings.m_lighting, "Fog Color", m_photoModeValues.m_fogColor,false, OpenColorPickerFog, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaFogStart, m_transformSettings.m_lighting, "Fog Start", m_photoModeValues.m_fogStart, m_minAndMaxValues.m_fogStart.x, m_minAndMaxValues.m_fogStart.y, SetGaiaFogStart, SetGaiaFogStart, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaFogEnd, m_transformSettings.m_lighting, "Fog End", m_photoModeValues.m_fogEnd, m_minAndMaxValues.m_fogEnd.x, m_minAndMaxValues.m_fogEnd.y, SetGaiaFogEnd, SetGaiaFogEnd, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaFogDensity, m_transformSettings.m_lighting, "Fog Density", m_photoModeValues.m_fogDensity, m_minAndMaxValues.m_fogDensity.x, m_minAndMaxValues.m_fogDensity.y, SetGaiaFogDensity, SetGaiaFogDensity, true);
|
|
|
|
|
|
if (RenderSettings.fogMode == FogMode.Linear)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaFogStart != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogStart.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogEnd != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogEnd.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogDensity != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogDensity.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaFogStart != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogStart.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogEnd != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogEnd.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogDensity != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogDensity.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_unitySkyboxPresent)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingSkyboxHeader, m_transformSettings.m_lighting, "Skybox Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaSkyboxOverride, m_transformSettings.m_lighting, "Override Skybox", m_photoModeValues.m_skyboxOverride, SetGaiaSkyboxOverride, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSkyboxRotation, m_transformSettings.m_lighting, "Skybox Rotation", m_photoModeValues.m_skyboxRotation, m_minAndMaxValues.m_skyboxRotation.x, m_minAndMaxValues.m_skyboxRotation.y, SetGaiaSkyboxRotation, SetGaiaSkyboxRotation, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaSkyboxExposure, m_transformSettings.m_lighting, "Skybox Exposure", m_photoModeValues.m_skyboxExposure, m_minAndMaxValues.m_skyboxExposure.x, m_minAndMaxValues.m_skyboxExposure.y, SetGaiaSkyboxExposure, SetGaiaSkyboxExposure, true);
|
|
|
|
|
|
PhotoModeUtils.CreateColorField(ref m_gaiaSkyboxTint, m_transformSettings.m_lighting, "Skybox Tint Color", m_photoModeValues.m_skyboxTint, false, OpenColorPickerSkyboxTint, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (GaiaAPI.GetGaiaWindSettings(out m_photoModeValues.m_gaiaWindSpeed, out m_photoModeValues.m_gaiaWindDirection, out m_photoModeValues.m_gaiaWindSettingsOverride))
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_gaiaWindHeader, m_transformSettings.m_lighting, "Wind Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaWindSettingsOverride, m_transformSettings.m_lighting, "Override Wind", m_photoModeValues.m_gaiaWindSettingsOverride, SetWindOverride, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaWindDirection, m_transformSettings.m_lighting, "Wind Direction", m_photoModeValues.m_gaiaWindDirection, m_minAndMaxValues.m_gaiaWindDirection.x, m_minAndMaxValues.m_gaiaWindDirection.y, SetGaiaWindDirection, SetGaiaWindDirection, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaWindSpeed, m_transformSettings.m_lighting, "Wind Speed", m_photoModeValues.m_gaiaWindSpeed, m_minAndMaxValues.m_gaiaWindSpeed.x, m_minAndMaxValues.m_gaiaWindSpeed.y, SetGaiaWindSpeed, SetGaiaWindSpeed, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_photoModeValues.m_fogOverride)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaFogMode != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogMode.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogColor.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogStart != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogStart.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogEnd != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogEnd.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogDensity != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogDensity.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_photoModeValues.m_skyboxOverride)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaSkyboxRotation != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSkyboxRotation.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSkyboxExposure != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSkyboxExposure.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSkyboxTint != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSkyboxTint.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_photoModeValues.m_sunOverride)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaSunAngle != null && !m_hdrpTimeOfDay)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunAngle.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSunPitch != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunPitch.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSunIntensity != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunIntensity.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSunKelvin != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunKelvin.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSunColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunColor.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_photoModeValues.m_gaiaWindSettingsOverride)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaWindSpeed != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWindSpeed.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaWindDirection != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWindDirection.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Creates streaming UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void CreateStreamingSettingsUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
if (m_streamingSettingsArea != null && GaiaUtils.HasDynamicLoadedTerrains())
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_terrainLoader != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Vector3 size = m_terrainLoader.m_loadingBoundsRegular.size;
|
|
|
|
|
|
m_photoModeValues.m_gaiaLoadRange = Mathf.Max(size.x, size.z) * 0.5f;
|
|
|
|
|
|
size = m_terrainLoader.m_loadingBoundsImpostor.size;
|
|
|
|
|
|
m_photoModeValues.m_gaiaImpostorRange = Mathf.Max(size.x, size.z) * 0.5f;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_streamingHeader, m_transformSettings.m_terrain, "Gaia Streaming Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaLoadRange, m_streamingSettingsArea, "Terrain Range", m_photoModeValues.m_gaiaLoadRange, m_minAndMaxValues.m_gaiaLoadRange.x, m_minAndMaxValues.m_gaiaLoadRange.y, SetGaiaLoadRange, SetGaiaLoadRange, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaImpostorRange, m_streamingSettingsArea, "Impostor Range", m_photoModeValues.m_gaiaImpostorRange, m_minAndMaxValues.m_gaiaImpostorRange.x, m_minAndMaxValues.m_gaiaImpostorRange.y, SetGaiaImpostorRange, SetGaiaImpostorRange, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Creates weather UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void CreateWeatherSettingsUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
if (m_transformSettings.m_lighting != null && m_pwWeatherPresent)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_weather != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_gaiaWeatherEnabled = m_weather.EnableRain || m_weather.EnableSnow;
|
|
|
|
|
|
m_photoModeValues.m_gaiaWindDirection = m_weather.WindDirection;
|
|
|
|
|
|
m_photoModeValues.m_gaiaWindSpeed = m_weather.WindSpeed;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_lightingWeatherHeader, m_transformSettings.m_lighting, "Weather Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateDropdown(ref m_gaiaWeatherEnabled, m_transformSettings.m_lighting, "Weather Enabled", m_photoModeValues.m_gaiaWeatherEnabled, SetGaiaWeatherEnabled, m_photoModeValues.GetDefaultToggleOptions(), true);
|
|
|
|
|
|
PhotoModeUtils.CreateButton(ref m_gaiaWeatherToggleRain, m_transformSettings.m_lighting, "Rain", "Start Rain", OnToggleRainClicked, true);
|
|
|
|
|
|
PhotoModeUtils.CreateButton(ref m_gaiaWeatherToggleSnow, m_transformSettings.m_lighting, "Snow", "Start Snow", OnToggleSnowClicked, true);
|
|
|
|
|
|
if (GaiaAPI.GetGaiaWindSettings(out m_photoModeValues.m_gaiaWindSpeed, out m_photoModeValues.m_gaiaWindDirection, out m_savedPhotoModeValues.m_gaiaWindSettingsOverride))
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_gaiaWindHeader, m_transformSettings.m_lighting, "Wind Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaWindDirection, m_transformSettings.m_lighting, "Wind Direction", m_photoModeValues.m_gaiaWindDirection, m_minAndMaxValues.m_gaiaWindDirection.x, m_minAndMaxValues.m_gaiaWindDirection.y, SetGaiaWindDirection, SetGaiaWindDirection, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_gaiaWindSpeed, m_transformSettings.m_lighting, "Wind Speed", m_photoModeValues.m_gaiaWindSpeed, m_minAndMaxValues.m_gaiaWindSpeed.x, m_minAndMaxValues.m_gaiaWindSpeed.y, SetGaiaWindSpeed, SetGaiaWindSpeed, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_photoModeValues.m_gaiaWeatherEnabled)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaWeatherToggleRain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleRain.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaWeatherToggleSnow != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleSnow.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaWeatherToggleRain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleRain.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaWeatherToggleSnow != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleSnow.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Creates grass UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void CreateGrassSettingsUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
#if FLORA_PRESENT
|
|
|
|
|
|
if (m_detailManager != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_globalGrassDensity = m_detailManager.Settings.ObjectGlobalDensityModifier;
|
|
|
|
|
|
m_photoModeValues.m_globalGrassDistance = m_detailManager.Settings.ObjectGlobalDistanceModifier;
|
|
|
|
|
|
m_photoModeValues.m_cameraCellDistance = m_detailManager.Settings.TerrainTileGlobalDistanceModifier;
|
|
|
|
|
|
m_photoModeValues.m_cameraCellSubdivision = m_detailManager.Settings.CameraCellGlobalSubdivisionModifier;
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.CreateTitleHeader(ref m_grassSettingsHeader, m_transformSettings.m_terrain, "Grass Settings");
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_globalGrassDensity, m_transformSettings.m_terrain, "Global Grass Density", m_photoModeValues.m_globalGrassDensity, m_minAndMaxValues.m_globalGrassDensity.x, m_minAndMaxValues.m_globalGrassDensity.y, SetGlobalGrassDensity, SetGlobalGrassDensity, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_globalGrassDistance, m_transformSettings.m_terrain, "Global Grass Distance", m_photoModeValues.m_globalGrassDistance, m_minAndMaxValues.m_globalGrassDistance.x, m_minAndMaxValues.m_globalGrassDistance.y, SetGlobalGrassDistance, SetGlobalGrassDistance, true);
|
|
|
|
|
|
PhotoModeUtils.CreateSlider(ref m_globalCameraCellDistance, m_transformSettings.m_terrain, "Global Camera Cell Distance", m_photoModeValues.m_cameraCellDistance, m_minAndMaxValues.m_cameraCellDistance.x, m_minAndMaxValues.m_cameraCellDistance.y, SetGlobalCameraCellDistance, SetGlobalCameraCellDistance, true);
|
|
|
|
|
|
PhotoModeUtils.CreateIntSlider(ref m_globalCameraCellSubdivision, m_transformSettings.m_terrain, "Global Camera Cell Subdivision", m_photoModeValues.m_cameraCellSubdivision, m_minAndMaxValues.m_cameraCellSubdivision.x, m_minAndMaxValues.m_cameraCellSubdivision.y, SetGlobalCameraCellSubdivision, SetGlobalCameraCellSubdivision, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Checks to see if something is missing in the system
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private bool VerifySystems()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeProfile == null || m_photoModeValues == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("Photo Mode Profile is missing, check that one has been assigned");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_transformSettings.m_unity == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("Unity Settings Area rect is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
if (m_streamingSettingsArea == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("Streaming Settings Area rect is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
if (m_transformSettings.m_lighting == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("Gaia Lighting Settings Area rect is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_transformSettings.m_water == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("Water Settings Area rect is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_transformSettings.m_postFX == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("Post FX Settings Area rect is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_fpsText == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("FPS UI text is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_StormVersionText == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("Version UI text is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_OSText == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("OS UI text is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_deviceText == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("Device UI text is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_systemText == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("System UI text is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gpuText == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("GPU UI text is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gpuCapabilitiesText == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("GPU Capabilities UI text is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_screenInfoText == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("Screen Info UI text is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_screenshotText == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
//Debug.LogError("Screenshot UI text is missing");
|
|
|
|
|
|
//return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_runtimeUIPrefab == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Debug.LogError("UI Runtime Prefab is missing");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Resets the settings back to default
|
|
|
|
|
|
/// This is normally called OnDisable
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void ResetBackToDefault()
|
|
|
|
|
|
{
|
|
|
|
|
|
RemovePhotoModeCamera();
|
|
|
|
|
|
UnFreezePlayerController();
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaUI == null || !m_gaiaUI.m_resetOnDisable || !Application.isPlaying)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//Pipeline Specific
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
GaiaAPI.SetAutoFocusDepthOfField(true);
|
|
|
|
|
|
GaiaAPI.SetUnityHDRISkyboxHDRP(m_savedPhotoModeValues.m_skyboxRotation, m_savedPhotoModeValues.m_skyboxExposure);
|
|
|
|
|
|
GaiaAPI.SetUnityFogHDRP(m_savedPhotoModeValues.m_fogEnd, m_savedPhotoModeValues.m_fogColor);
|
|
|
|
|
|
GaiaAPI.SetHDRPCameraSettings(m_savedPhotoModeValues.m_cameraAperture, m_savedPhotoModeValues.m_cameraFocalLength, m_targetCamera);
|
|
|
|
|
|
GaiaAPI.SetHDRPShadowDistance(m_savedPhotoModeValues.m_shadowDistance);
|
|
|
|
|
|
GaiaAPI.SetHDRPShadowCascades(m_savedPhotoModeValues.m_shadowCascades);
|
|
|
|
|
|
GaiaAPI.SetHDRPLODBias(m_savedPhotoModeValues.m_lodBias, m_targetCamera);
|
|
|
|
|
|
GaiaAPI.SetHDRPWaterLODBias(m_savedPhotoModeValues.m_gaiaReflectionsLODBias);
|
|
|
|
|
|
GaiaAPI.SetHDRPDensityVolume(m_savedPhotoModeValues);
|
|
|
|
|
|
GaiaAPI.SetHDRPAntiAliasingMode(m_savedPhotoModeValues.m_antiAliasing);
|
|
|
|
|
|
GaiaAPI.SetHDRPAmbientIntensity(m_savedPhotoModeValues.m_ambientIntensity);
|
|
|
|
|
|
GaiaAPI.SetHDRPDOFFocusMode(m_savedPhotoModeValues.m_savedDofFocusMode);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER && GAIA_PRO_PRESENT
|
|
|
|
|
|
HDRPTimeOfDayAPI.SetCurrentTime(m_savedPhotoModeValues.m_gaiaTime, false);
|
|
|
|
|
|
HDRPTimeOfDayAPI.SetAutoUpdateMultiplier(m_savedPhotoModeValues.m_gaiaTimeOfDayEnabled, m_savedPhotoModeValues.m_gaiaTimeScale);
|
|
|
|
|
|
HDRPTimeOfDayAPI.SetGlobalSunMultiplier(m_savedPhotoModeValues.m_globalLightIntensityMultiplier);
|
|
|
|
|
|
HDRPTimeOfDayAPI.SetGlobalFogMultiplier(m_savedPhotoModeValues.m_globalFogDensityMultiplier);
|
|
|
|
|
|
HDRPTimeOfDayAPI.SetGlobalShadowMultiplier(m_savedPhotoModeValues.m_globalShadowDistanceMultiplier);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_pwWeatherPresent)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
//Time/Weather etc
|
|
|
|
|
|
GaiaAPI.SetAdditionalFogLinear(0f);
|
|
|
|
|
|
GaiaAPI.SetAdditionalFogExponential(0f);
|
|
|
|
|
|
GaiaAPI.SetAdditionalFogColor(new Color(0f, 0f, 0f));
|
|
|
|
|
|
GaiaTimeOfDay tod = new GaiaTimeOfDay
|
|
|
|
|
|
{
|
|
|
|
|
|
m_todEnabled = m_savedPhotoModeValues.m_gaiaTimeOfDayEnabled,
|
|
|
|
|
|
m_todDayTimeScale = m_savedPhotoModeValues.m_gaiaTimeScale,
|
|
|
|
|
|
m_todHour = (int)m_savedPhotoModeValues.m_gaiaTime,
|
|
|
|
|
|
m_todMinutes = ((m_savedPhotoModeValues.m_gaiaTime % 1f) * 60)
|
|
|
|
|
|
};
|
|
|
|
|
|
GaiaAPI.SetTimeOfDaySettings(tod);
|
|
|
|
|
|
GaiaAPI.SetWeatherEnabled(m_savedPhotoModeValues.m_gaiaWeatherEnabled);
|
|
|
|
|
|
GaiaAPI.SetTimeOfDaySunRotation(m_savedPhotoModeValues.m_sunRotation);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
//Sky
|
|
|
|
|
|
GaiaAPI.SetUnityHDRISkybox(m_savedPhotoModeValues.m_skyboxExposure, m_savedPhotoModeValues.m_skyboxRotation, m_savedPhotoModeValues.m_skyboxTint);
|
|
|
|
|
|
//Fog
|
|
|
|
|
|
GaiaAPI.SetFogSettings(m_savedPhotoModeValues.m_fogMode, m_savedPhotoModeValues.m_fogColor, m_savedPhotoModeValues.m_fogDensity, m_savedPhotoModeValues.m_fogStart, m_savedPhotoModeValues.m_fogEnd);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Quality Settings/Shadows
|
|
|
|
|
|
if (m_renderPipeline == GaiaConstants.EnvironmentRenderer.Universal)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
GaiaAPI.SetURPAntiAliasingMode(m_savedPhotoModeValues.m_antiAliasing);
|
|
|
|
|
|
GaiaAPI.SetURPShadowDistance(m_savedPhotoModeValues.m_shadowDistance);
|
|
|
|
|
|
GaiaAPI.SetURPShadowCasecade(m_savedPhotoModeValues.m_shadowCascades);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_postProcessingLayer != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_postProcessingLayer.antialiasingMode = (PostProcessLayer.Antialiasing) m_photoModeValues.m_antiAliasing;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
QualitySettings.shadowDistance = m_savedPhotoModeValues.m_shadowDistance;
|
|
|
|
|
|
QualitySettings.shadowResolution = (UnityEngine.ShadowResolution)m_savedPhotoModeValues.m_shadowResolution;
|
|
|
|
|
|
QualitySettings.shadowCascades = m_savedPhotoModeValues.m_shadowCascades;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//Ambient
|
|
|
|
|
|
GaiaAPI.SetAmbientColor(m_savedPhotoModeValues.m_ambientSkyColor, m_savedPhotoModeValues.m_ambientEquatorColor, m_savedPhotoModeValues.m_ambientGroundColor);
|
|
|
|
|
|
RenderSettings.ambientIntensity = m_savedPhotoModeValues.m_ambientIntensity;
|
|
|
|
|
|
QualitySettings.lodBias = m_savedPhotoModeValues.m_lodBias;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//Volume
|
|
|
|
|
|
AudioListener.volume = m_savedPhotoModeValues.m_globalVolume;
|
|
|
|
|
|
//Resets post fx
|
|
|
|
|
|
RevertPostProcessing();
|
|
|
|
|
|
//Reset camera culling
|
|
|
|
|
|
if (m_sceneProfile != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_sceneProfile.CullingProfile != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_sceneProfile.CullingProfile.m_additionalCullingDistance = 0f;
|
|
|
|
|
|
if (m_targetCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_targetCamera.farClipPlane = m_savedPhotoModeValues.m_farClipPlane;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GaiaAPI.RefreshCameraCulling();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//Reset Terrain
|
|
|
|
|
|
if (m_activeTerrain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetTerrainDrawInstanced(m_savedPhotoModeValues.m_drawInstanced);
|
|
|
|
|
|
GaiaAPI.SetTerrainDetails(m_savedPhotoModeValues.m_terrainDetailDensity, m_savedPhotoModeValues.m_terrainDetailDistance);
|
|
|
|
|
|
GaiaAPI.SetTerrainPixelErrorAndBaseMapTexture(m_savedPhotoModeValues.m_terrainPixelError, m_savedPhotoModeValues.m_terrainBasemapDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Camera
|
|
|
|
|
|
if (m_targetCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_targetCamera.fieldOfView = m_savedPhotoModeValues.m_fieldOfView;
|
|
|
|
|
|
GaiaAPI.SetCameraRoll(m_savedPhotoModeValues.m_cameraRoll, m_targetCamera);
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
GaiaAPI.SetHDRPCameraSettings(m_savedPhotoModeValues.m_cameraAperture, m_savedPhotoModeValues.m_cameraFocalLength, m_targetCamera);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
//Water
|
|
|
|
|
|
if (m_sceneProfile != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_sceneProfile.m_extraWaterRenderDistance = m_savedPhotoModeValues.m_gaiaWaterReflectionDistance;
|
|
|
|
|
|
m_sceneProfile.m_reflectionResolution = (GaiaConstants.GaiaProWaterReflectionsQuality)m_savedPhotoModeValues.m_gaiaWaterReflectionResolution;
|
|
|
|
|
|
GaiaAPI.SetWaterReflectionExtraDistance(m_savedPhotoModeValues.m_gaiaWaterReflectionDistance);
|
|
|
|
|
|
GaiaAPI.SetWaterReflections(m_savedPhotoModeValues.m_gaiaWaterReflectionEnabled);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Wind
|
|
|
|
|
|
GaiaAPI.SetGaiaWindSettings(m_savedPhotoModeValues.m_gaiaWindSpeed, m_savedPhotoModeValues.m_gaiaWindDirection);
|
|
|
|
|
|
|
|
|
|
|
|
if (GaiaUnderwaterEffects.Instance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetUnderwaterFogColor(m_savedPhotoModeValues.m_gaiaUnderwaterFogColor);
|
|
|
|
|
|
GaiaAPI.SetUnderwaterFogDensity(m_savedPhotoModeValues.m_gaiaUnderwaterFogDensity, m_savedPhotoModeValues.m_gaiaUnderwaterFogDistance);
|
|
|
|
|
|
GaiaAPI.SetUnderwaterVolume(m_savedPhotoModeValues.m_gaiaUnderwaterVolume);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//Streaming
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
if (m_terrainLoader)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_terrainLoader.m_loadingBoundsRegular.size = new Vector3Double(m_savedPhotoModeValues.m_gaiaLoadRange * 2f, m_terrainLoader.m_loadingBoundsRegular.size.y, m_savedPhotoModeValues.m_gaiaLoadRange * 2f);
|
|
|
|
|
|
m_terrainLoader.m_loadingBoundsImpostor.size = new Vector3Double(m_savedPhotoModeValues.m_gaiaImpostorRange * 2f, m_terrainLoader.m_loadingBoundsImpostor.size.y, m_savedPhotoModeValues.m_gaiaImpostorRange * 2f);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
//Quality Settings
|
|
|
|
|
|
QualitySettings.vSyncCount = m_savedPhotoModeValues.m_vSync;
|
|
|
|
|
|
Application.targetFrameRate = m_savedPhotoModeValues.m_targetFPS;
|
|
|
|
|
|
//Sun
|
|
|
|
|
|
if (!m_hdrpTimeOfDay)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetSunRotation(m_savedPhotoModeValues.m_sunPitch, m_savedPhotoModeValues.m_sunRotation, m_mainSunLight);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GaiaAPI.SetUnitySunSettings(m_savedPhotoModeValues.m_sunIntensity, m_savedPhotoModeValues.m_sunColor, m_savedPhotoModeValues.m_sunKelvinValue, m_mainSunLight);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Reverts post processing back to it's default state
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void RevertPostProcessing()
|
|
|
|
|
|
{
|
|
|
|
|
|
//Resets post fx
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_depthOfField != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettings(m_savedPhotoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GaiaAPI.SetPostFXExposure(m_savedPhotoModeValues.m_postFXExposure);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsURP(m_savedPhotoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GaiaAPI.SetPostExposureURP(m_savedPhotoModeValues.m_postFXExposure);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
if (GaiaAPI.DepthOfFieldPresentHDRP())
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsHDRP(m_savedPhotoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GaiaAPI.SetPostExposureHDRP(m_savedPhotoModeValues.m_postFXExposure, (ExposureMode)m_savedPhotoModeValues.m_postFXExposureMode);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Stores all the saved settings
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void SaveStartValues()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (GaiaGlobal.Instance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_savedLightingProfileIndex = m_sceneProfile.m_selectedLightingProfileValuesIndex;
|
|
|
|
|
|
m_photoModeValues = new PhotoModeValues();
|
|
|
|
|
|
//Get Sun
|
|
|
|
|
|
m_mainSunLight = GaiaUtils.GetMainDirectionalLight(false);
|
|
|
|
|
|
//Pipeline Specific
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
GaiaAPI.SetAutoFocusDepthOfField(false);
|
|
|
|
|
|
GaiaAPI.GetUnityFogHDRP(out m_savedPhotoModeValues.m_fogEnd, out m_savedPhotoModeValues.m_fogColor);
|
|
|
|
|
|
GaiaAPI.GetUnityHDRISkyboxHDRP(out m_savedPhotoModeValues.m_skyboxRotation, out m_savedPhotoModeValues.m_skyboxExposure);
|
|
|
|
|
|
GaiaAPI.GetHDRPCameraSettings(out m_savedPhotoModeValues.m_cameraAperture, out m_savedPhotoModeValues.m_cameraFocalLength, m_targetCamera);
|
|
|
|
|
|
GaiaAPI.GetHDRPDensityVolume(out m_savedPhotoModeValues.m_densityVolumeAlbedoColor, out m_savedPhotoModeValues.m_densityVolumeFogDistance, out m_savedPhotoModeValues.m_densityVolumeEffectType, out m_savedPhotoModeValues.m_densityVolumeTilingResolution, out m_savedPhotoModeValues.m_overrideDensityVolume);
|
|
|
|
|
|
m_savedPhotoModeValues.m_shadowDistance = GaiaAPI.GetHDRPShadowDistance();
|
|
|
|
|
|
m_savedPhotoModeValues.m_shadowCascades = GaiaAPI.GetHDRPShadowCascades();
|
|
|
|
|
|
m_savedPhotoModeValues.m_lodBias = GaiaAPI.GetHDRPLODBias(m_targetCamera);
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaReflectionsLODBias = GaiaAPI.GetHDRPWaterLODBias();
|
|
|
|
|
|
m_savedPhotoModeValues.m_antiAliasing = GaiaAPI.GetHDRPAntiAliasingMode();
|
|
|
|
|
|
m_savedPhotoModeValues.m_ambientIntensity = GaiaAPI.GetHDRPAmbientIntensity();
|
|
|
|
|
|
GaiaAPI.GetSunRotation(out m_savedPhotoModeValues.m_sunPitch, out m_savedPhotoModeValues.m_sunRotation, m_mainSunLight);
|
|
|
|
|
|
m_savedPhotoModeValues.m_savedDofFocusMode = GaiaAPI.GetHDRPDOFFocusMode();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER && GAIA_PRO_PRESENT
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaTime = HDRPTimeOfDayAPI.GetCurrentTime();
|
|
|
|
|
|
HDRPTimeOfDayAPI.GetAutoUpdateMultiplier(out bool autoUpdate, out float autoUpdateValue);
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaTimeOfDayEnabled = autoUpdate;
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaTimeScale = autoUpdateValue;
|
|
|
|
|
|
m_savedPhotoModeValues.m_globalLightIntensityMultiplier = HDRPTimeOfDayAPI.GetGlobalSunMultiplier();
|
|
|
|
|
|
m_savedPhotoModeValues.m_globalFogDensityMultiplier = HDRPTimeOfDayAPI.GetGlobalFogMultiplier();
|
|
|
|
|
|
m_savedPhotoModeValues.m_globalShadowDistanceMultiplier = HDRPTimeOfDayAPI.GetGlobalShadowMultiplier();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
//Saved Skybox
|
|
|
|
|
|
if (m_pwWeatherPresent)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
GaiaTimeOfDay tod = GaiaGlobal.Instance.GaiaTimeOfDayValue;
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaTimeOfDayEnabled = tod.m_todEnabled;
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaTimeScale = tod.m_todDayTimeScale;
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaTime = (int) m_savedPhotoModeValues.m_gaiaTime;
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaTime += ((m_savedPhotoModeValues.m_gaiaTime % 1f) * 60);
|
|
|
|
|
|
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaWeatherEnabled = m_weather.m_disableWeatherFX;
|
|
|
|
|
|
if (m_atmosphere != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_savedPhotoModeValues.m_sunRotation = m_atmosphere.m_sunRotation;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.GetSunRotation(out m_savedPhotoModeValues.m_sunPitch, out m_savedPhotoModeValues.m_sunRotation, m_mainSunLight);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GaiaAPI.GetUnityHDRISkybox(out m_savedPhotoModeValues.m_skyboxExposure, out m_savedPhotoModeValues.m_skyboxRotation, out m_savedPhotoModeValues.m_skyboxTint, out m_savedPhotoModeValues.m_skyboxOverride);
|
|
|
|
|
|
//Save fog settings
|
|
|
|
|
|
GaiaAPI.GetFogSettings(out m_savedPhotoModeValues.m_fogMode, out m_savedPhotoModeValues.m_fogColor, out m_savedPhotoModeValues.m_fogDensity, out m_savedPhotoModeValues.m_fogStart, out m_savedPhotoModeValues.m_fogEnd, out m_savedPhotoModeValues.m_fogOverride);
|
|
|
|
|
|
//Quality
|
|
|
|
|
|
if (m_renderPipeline == GaiaConstants.EnvironmentRenderer.Universal)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
m_savedPhotoModeValues.m_antiAliasing = GaiaAPI.GetURPAntiAliasingMode();
|
|
|
|
|
|
m_savedPhotoModeValues.m_shadowDistance = GaiaAPI.GetURPShadowDistance();
|
|
|
|
|
|
m_savedPhotoModeValues.m_shadowCascades = GaiaAPI.GetURPShadowCasecade();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_postProcessingLayer != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_savedPhotoModeValues.m_antiAliasing = (int)m_postProcessingLayer.antialiasingMode;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
m_savedPhotoModeValues.m_shadowDistance = QualitySettings.shadowDistance;
|
|
|
|
|
|
m_savedPhotoModeValues.m_shadowResolution = (int)QualitySettings.shadowResolution;
|
|
|
|
|
|
m_savedPhotoModeValues.m_shadowCascades = QualitySettings.shadowCascades;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_savedPhotoModeValues.m_lodBias = QualitySettings.lodBias;
|
|
|
|
|
|
//Ambient
|
|
|
|
|
|
m_savedPhotoModeValues.m_ambientIntensity = RenderSettings.ambientIntensity;
|
|
|
|
|
|
GaiaAPI.GetAmbientColor(out m_savedPhotoModeValues.m_ambientSkyColor, out m_savedPhotoModeValues.m_ambientEquatorColor, out m_savedPhotoModeValues.m_ambientGroundColor);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//Save Terrain Settings
|
|
|
|
|
|
if (m_activeTerrain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_savedPhotoModeValues.m_drawInstanced = m_activeTerrain.drawInstanced;
|
|
|
|
|
|
m_savedPhotoModeValues.m_terrainDetailDensity = m_activeTerrain.detailObjectDensity;
|
|
|
|
|
|
m_savedPhotoModeValues.m_terrainDetailDistance = m_activeTerrain.detailObjectDistance;
|
|
|
|
|
|
m_savedPhotoModeValues.m_terrainPixelError = m_activeTerrain.heightmapPixelError;
|
|
|
|
|
|
m_savedPhotoModeValues.m_terrainBasemapDistance = m_activeTerrain.basemapDistance;
|
|
|
|
|
|
}
|
|
|
|
|
|
//Volume
|
|
|
|
|
|
m_savedPhotoModeValues.m_globalVolume = AudioListener.volume;
|
|
|
|
|
|
//Sun
|
|
|
|
|
|
GaiaAPI.GetUnitySunSettings(out m_savedPhotoModeValues.m_sunIntensity, out m_savedPhotoModeValues.m_sunColor, out m_savedPhotoModeValues.m_sunKelvinValue, out m_savedPhotoModeValues.m_sunOverride, m_mainSunLight);
|
|
|
|
|
|
//Camera
|
|
|
|
|
|
if (m_targetCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_savedPhotoModeValues.m_fieldOfView = m_targetCamera.fieldOfView;
|
|
|
|
|
|
m_savedPhotoModeValues.m_farClipPlane = m_targetCamera.farClipPlane;
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
GaiaAPI.GetHDRPCameraSettings(out m_savedPhotoModeValues.m_cameraAperture, out m_savedPhotoModeValues.m_cameraFocalLength, m_targetCamera);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
//Water
|
|
|
|
|
|
if (m_sceneProfile != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaWaterReflectionEnabled = m_sceneProfile.m_enableReflections;
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaWaterReflectionDistance = m_sceneProfile.m_extraWaterRenderDistance;
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaWaterReflectionResolution = (int)m_sceneProfile.m_reflectionResolution;
|
|
|
|
|
|
}
|
|
|
|
|
|
//Wind
|
|
|
|
|
|
GaiaAPI.GetGaiaWindSettings(out m_savedPhotoModeValues.m_gaiaWindSpeed, out m_savedPhotoModeValues.m_gaiaWindDirection, out m_savedPhotoModeValues.m_gaiaWindSettingsOverride);
|
|
|
|
|
|
|
|
|
|
|
|
if (GaiaUnderwaterEffects.Instance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaUnderwaterFogColor = GaiaAPI.GetUnderwaterFogColor();
|
|
|
|
|
|
GaiaAPI.GetUnderwaterFogDensity(out m_savedPhotoModeValues.m_gaiaUnderwaterFogDensity, out m_savedPhotoModeValues.m_gaiaUnderwaterFogDistance);
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaUnderwaterVolume = GaiaAPI.GetUnderwaterVolume();
|
|
|
|
|
|
}
|
|
|
|
|
|
//Quality Settings
|
|
|
|
|
|
m_savedPhotoModeValues.m_vSync = QualitySettings.vSyncCount;
|
|
|
|
|
|
m_savedPhotoModeValues.m_targetFPS = Application.targetFrameRate;
|
|
|
|
|
|
|
|
|
|
|
|
//Terrain loading
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
if (m_terrainLoader != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Vector3 size = m_terrainLoader.m_loadingBoundsRegular.size;
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaLoadRange = Mathf.Max(size.x, size.z) * 0.5f;
|
|
|
|
|
|
size = m_terrainLoader.m_loadingBoundsImpostor.size;
|
|
|
|
|
|
m_savedPhotoModeValues.m_gaiaImpostorRange = Mathf.Max(size.x, size.z) * 0.5f;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
//Post FX
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_depthOfField != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofActive = m_depthOfField.active;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofAperture = m_depthOfField.aperture.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofFocalLength = m_depthOfField.focalLength.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofFocusDistance = m_depthOfField.focusDistance.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofKernelSize = (int)m_depthOfField.kernelSize.value;
|
|
|
|
|
|
}
|
|
|
|
|
|
GaiaAPI.GetPostFXExposure(out m_savedPhotoModeValues.m_postFXExposure);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_depthOfFieldURP == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_depthOfFieldURP = GaiaAPI.GetDepthOfFieldSettingsURP();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofActive = m_depthOfFieldURP.active;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofFocusModeURP = (int)m_depthOfFieldURP.mode.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofFocusDistance = m_depthOfFieldURP.focusDistance.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofAperture = m_depthOfFieldURP.aperture.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofFocalLength = m_depthOfFieldURP.focalLength.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofStartBlurURP = m_depthOfFieldURP.gaussianStart.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofEndBlurURP = m_depthOfFieldURP.gaussianEnd.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofMaxRadiusBlur = m_depthOfFieldURP.gaussianMaxRadius.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofHighQualityURP = m_depthOfFieldURP.highQualitySampling.value;
|
|
|
|
|
|
|
|
|
|
|
|
GaiaAPI.GetPostExposureURP(out m_savedPhotoModeValues.m_postFXExposure);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
m_depthOfFieldHDRP = GaiaAPI.GetDepthOfFieldSettingsHDRP();
|
|
|
|
|
|
if (m_depthOfFieldHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofActive = m_depthOfFieldHDRP.active;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofFocusModeHDRP = (int)m_depthOfFieldHDRP.focusMode.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofQualityHDRP = m_depthOfFieldHDRP.quality.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofFocusDistance = m_depthOfFieldHDRP.focusDistance.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofNearBlurStart = m_depthOfFieldHDRP.nearFocusStart.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofNearBlurEnd = m_depthOfFieldHDRP.nearFocusEnd.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofFarBlurStart = m_depthOfFieldHDRP.farFocusStart.value;
|
|
|
|
|
|
m_savedPhotoModeValues.m_dofFarBlurEnd = m_depthOfFieldHDRP.farFocusEnd.value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GaiaAPI.GetPostExposureHDRP(out m_savedPhotoModeValues.m_postFXExposure, out m_savedPhotoModeValues.m_postFXExposureMode);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Keeps focus distance synced with auto focus this helps when you switch mode
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void SyncAutoFocus()
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_depthOfField != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_dofFocusDistance = m_depthOfField.focusDistance.value;
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFFocusDistance, m_photoModeValues.m_dofFocusDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_dofFocusDistance = m_depthOfFieldURP.focusDistance.value;
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFFocusDistance, m_photoModeValues.m_dofFocusDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
if (m_depthOfFieldHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_dofFocusDistance = m_depthOfFieldHDRP.focusDistance.value;
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFFocusDistance, m_photoModeValues.m_dofFocusDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Set Photo Mode Functions
|
|
|
|
|
|
|
|
|
|
|
|
public void SetUnityScreenshotResolution(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_screenshotResolution == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_screenshotResolution = f;
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_photoModeValues.m_screenshotResolution)
|
|
|
|
|
|
{
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter.m_useScreenSize = true;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter.m_useScreenSize = false;
|
|
|
|
|
|
m_screenShotter.m_screenshotResolution = GaiaConstants.ScreenshotResolution.Resolution640X480;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter.m_useScreenSize = false;
|
|
|
|
|
|
m_screenShotter.m_screenshotResolution = GaiaConstants.ScreenshotResolution.Resolution800X600;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 3:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter.m_useScreenSize = false;
|
|
|
|
|
|
m_screenShotter.m_screenshotResolution = GaiaConstants.ScreenshotResolution.Resolution1280X720;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 4:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter.m_useScreenSize = false;
|
|
|
|
|
|
m_screenShotter.m_screenshotResolution = GaiaConstants.ScreenshotResolution.Resolution1366X768;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 5:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter.m_useScreenSize = false;
|
|
|
|
|
|
m_screenShotter.m_screenshotResolution = GaiaConstants.ScreenshotResolution.Resolution1600X900;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 6:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter.m_useScreenSize = false;
|
|
|
|
|
|
m_screenShotter.m_screenshotResolution = GaiaConstants.ScreenshotResolution.Resolution1920X1080;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 7:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter.m_useScreenSize = false;
|
|
|
|
|
|
m_screenShotter.m_screenshotResolution = GaiaConstants.ScreenshotResolution.Resolution2560X1440;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 8:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter.m_useScreenSize = false;
|
|
|
|
|
|
m_screenShotter.m_screenshotResolution = GaiaConstants.ScreenshotResolution.Resolution3840X2160;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 9:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter.m_useScreenSize = false;
|
|
|
|
|
|
m_screenShotter.m_screenshotResolution = GaiaConstants.ScreenshotResolution.Resolution7680X4320;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_screenshotResolution.SetDropdownValue(m_photoModeValues.m_screenshotResolution);
|
|
|
|
|
|
if (m_screenShotter != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeValues.m_screenshotResolution != 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter.UpdateScreenshotResolution(
|
|
|
|
|
|
(GaiaConstants.ScreenshotResolution) m_photoModeValues.m_screenshotResolution);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityScreenshotImageFormat(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_screenshotImageFormat == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_screenshotImageFormat = f;
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_screenShotter.m_imageFormat = (GaiaConstants.ImageFileType)f;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_screenshotImageFormat.SetDropdownValue(m_photoModeValues.m_screenshotImageFormat);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetPhotoModeLoadSettings(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_loadSavedSettings == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch (value)
|
|
|
|
|
|
{
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_loadSavedSettings = false;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_loadSavedSettings = true;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaUI != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetPhotoModeSettings(m_photoModeValues.m_loadSavedSettings, m_photoModeValues.m_revertOnDisabled,m_photoModeValues.m_showReticle, m_photoModeValues.m_showRuleOfThirds, m_gaiaUI.m_enablePhotoMode);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_loadSavedSettings.SetDropdownValue(value);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetPhotoModeRevertOnDisabledSettings(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_resetPhotoModeOnDisable == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_revertOnDisabled = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaUI != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetPhotoModeSettings(m_photoModeValues.m_loadSavedSettings, m_photoModeValues.m_revertOnDisabled,m_photoModeValues.m_showReticle, m_photoModeValues.m_showRuleOfThirds, m_gaiaUI.m_enablePhotoMode);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_resetPhotoModeOnDisable.SetDropdownValue(value);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SetPhotoModeShowFPS(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_showFPS == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_showFPS = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
if (m_photoModeValues.m_showFPS)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_fpsAccumulator = 0f;
|
|
|
|
|
|
m_fpsNextPeriod = Time.realtimeSinceStartup + m_cMeasurePeriod;
|
|
|
|
|
|
m_fpsText.enabled = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_fpsText.enabled = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_showFPS.SetDropdownValue(value);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SetPhotoModeShowReticule(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_showReticule == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_showReticle = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaUI != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetShowOrHidePhotoModeReticule(m_photoModeValues.m_showReticle);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_showReticule.SetDropdownValue(value);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetPhotoModeShowRuleOfThirds(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_showRuleOfThirds == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_showRuleOfThirds = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaUI != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetShowOrHidePhotoModeRuleOfThirds(m_photoModeValues.m_showRuleOfThirds);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_showRuleOfThirds.SetDropdownValue(value);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Set Unity Functions
|
|
|
|
|
|
|
|
|
|
|
|
public void SetUnityVolume(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_unityVolume == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_globalVolume = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
AudioListener.volume = f;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_unityVolume, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityVolume(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetUnityVolume, m_minAndMaxValues.m_0To1, m_unityVolume);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityFieldOfView(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_fieldOfView == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_fieldOfView = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_targetCamera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_targetCamera.fieldOfView = f;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_fieldOfView, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityFieldOfView(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetUnityFieldOfView, m_minAndMaxValues.m_fieldOfView, m_fieldOfView);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityCameraRoll(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_cameraRoll == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_cameraRoll = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetCameraRoll(f, m_targetCamera);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_cameraRoll, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityCameraRoll(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetUnityCameraRoll, m_minAndMaxValues.m_cameraRoll, m_cameraRoll);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityCullingDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_cullingDistance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_gaiaCullinDistance = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (f > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetCullingSettings(f, m_photoModeValues.m_farClipPlane + f);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetCullingSettings(f, m_photoModeValues.m_farClipPlane - Mathf.Abs(f));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_cullingDistance, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityCullingDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetUnityCullingDistance, m_minAndMaxValues.m_gaiaCullinDistance, m_cullingDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityLODBias(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_unityLODBias == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_lodBias = f;
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
GaiaAPI.SetHDRPLODBias(f, m_targetCamera);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
QualitySettings.lodBias = f;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_unityLODBias, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityLODBias(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetUnityLODBias, m_minAndMaxValues.m_lodBias, m_unityLODBias);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityAA(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_unityAA == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_antiAliasing = f;
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_unityAA.SetDropdownValue(m_photoModeValues.m_antiAliasing);
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_postProcessingLayer != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_postProcessingLayer.antialiasingMode = (PostProcessLayer.Antialiasing) m_photoModeValues.m_antiAliasing;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
GaiaAPI.SetURPAntiAliasingMode(m_photoModeValues.m_antiAliasing);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
GaiaAPI.SetHDRPAntiAliasingMode(m_photoModeValues.m_antiAliasing);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityVSync(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_unityVSync == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_vSync = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
QualitySettings.vSyncCount = m_photoModeValues.m_vSync;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_unityVSync.SetDropdownValue(m_photoModeValues.m_vSync);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
if (m_unityTargetFPS != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeValues.m_vSync == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_unityTargetFPS.gameObject.SetActive(true);
|
|
|
|
|
|
Application.targetFrameRate = m_photoModeValues.m_targetFPS;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_unityTargetFPS.gameObject.SetActive(false);
|
|
|
|
|
|
Application.targetFrameRate = -1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityTargetFPS(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_unityTargetFPS == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_targetFPS = (int)f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeValues.m_vSync == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
Application.targetFrameRate = m_photoModeValues.m_targetFPS;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
Application.targetFrameRate = -1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_unityTargetFPS, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityTargetFPS(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetUnityTargetFPS, m_minAndMaxValues.m_targetFPS, m_unityTargetFPS);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityShadowDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_unityShadowDistance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_shadowDistance = f;
|
|
|
|
|
|
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
QualitySettings.shadowDistance = m_photoModeValues.m_shadowDistance;
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
GaiaAPI.SetURPShadowDistance(f);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
GaiaAPI.SetHDRPShadowDistance(f);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_unityShadowDistance, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityShadowDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetUnityShadowDistance, m_minAndMaxValues.m_shadowDistance, m_unityShadowDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityShadowResolution(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_unityShadownResolution == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_shadowResolution = f;
|
|
|
|
|
|
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
QualitySettings.shadowResolution = (UnityEngine.ShadowResolution)m_photoModeValues.m_shadowResolution;
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_unityShadownResolution.SetDropdownValue(m_photoModeValues.m_shadowResolution);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetUnityShadowCascades(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_unityShadowCascades == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_photoModeValues.m_shadowCascades = f;
|
|
|
|
|
|
m_unityShadowCascades.SetDropdownValue(f);
|
|
|
|
|
|
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (f)
|
|
|
|
|
|
{
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
f = 2;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
f = 4;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
QualitySettings.shadowCascades = m_photoModeValues.m_shadowCascades;
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
switch (f)
|
|
|
|
|
|
{
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
{
|
|
|
|
|
|
f = 1;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
{
|
|
|
|
|
|
f = 2;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
{
|
|
|
|
|
|
f = 3;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 3:
|
|
|
|
|
|
{
|
|
|
|
|
|
f = 4;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
GaiaAPI.SetURPShadowCasecade(f);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
switch (f)
|
|
|
|
|
|
{
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
{
|
|
|
|
|
|
f = 1;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
{
|
|
|
|
|
|
f = 2;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
{
|
|
|
|
|
|
f = 3;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 3:
|
|
|
|
|
|
{
|
|
|
|
|
|
f = 4;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
GaiaAPI.SetHDRPShadowCascades(f);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Set Gaia Streaming Functions
|
|
|
|
|
|
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
public void SetGaiaLoadRange(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaLoadRange == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaLoadRange = f;
|
|
|
|
|
|
if (!m_isUpdatingValues && m_terrainLoader != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_terrainLoader.m_loadingBoundsRegular.size = new Vector3Double(f * 2f, m_terrainLoader.m_loadingBoundsRegular.size.y, f * 2f);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaLoadRange, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaLoadRange(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaLoadRange, m_minAndMaxValues.m_gaiaLoadRange, m_gaiaLoadRange);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaImpostorRange(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaImpostorRange == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaImpostorRange = f;
|
|
|
|
|
|
if (!m_isUpdatingValues && m_terrainLoader != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_terrainLoader.m_loadingBoundsImpostor.size = new Vector3Double(f * 2f, m_terrainLoader.m_loadingBoundsImpostor.size.y, f * 2f);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaImpostorRange, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaImpostorRange(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaImpostorRange, m_minAndMaxValues.m_gaiaImpostorRange, m_gaiaImpostorRange);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Set Weather Functions
|
|
|
|
|
|
|
|
|
|
|
|
public void SetGaiaWindDirection(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaWindDirection == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaWindDirection = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetGaiaWindSettings(m_photoModeValues.m_gaiaWindSpeed, f);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaWindDirection, f);
|
|
|
|
|
|
if (f < 0.0625f || f > 0.9375f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWindDirection.SetLabel("Wind Direction (N)");
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 0.1875f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWindDirection.SetLabel("Wind Direction (NE)");
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 0.3125f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWindDirection.SetLabel("Wind Direction (E)");
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 0.4375f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWindDirection.SetLabel("Wind Direction (SE)");
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 0.5625f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWindDirection.SetLabel("Wind Direction (S)");
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 0.6875f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWindDirection.SetLabel("Wind Direction (SW)");
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 0.8125f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWindDirection.SetLabel("Wind Direction (W)");
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 0.9375f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWindDirection.SetLabel("NW", 1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaWindDirection(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaWindDirection, m_minAndMaxValues.m_gaiaWindDirection, m_gaiaWindDirection);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaWindSpeed(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaWindSpeed == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaWindSpeed = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetGaiaWindSettings(f, m_photoModeValues.m_gaiaWindDirection);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaWindSpeed, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaWindSpeed(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaWindSpeed, m_minAndMaxValues.m_gaiaWindSpeed, m_gaiaWindSpeed);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetWindOverride(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaWindSettingsOverride == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool boolValue = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaWindSettingsOverride = boolValue;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeValues.m_gaiaWindSettingsOverride)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetGaiaWindSettings(m_photoModeValues.m_gaiaWindSpeed, m_photoModeValues.m_gaiaWindDirection);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetGaiaWindSettings(m_savedPhotoModeValues.m_gaiaWindSpeed, m_savedPhotoModeValues.m_gaiaWindDirection);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_gaiaWindSettingsOverride.SetDropdownValue(value);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaWindSpeed != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWindSpeed.gameObject.SetActive(m_photoModeValues.m_gaiaWindSettingsOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaWindDirection != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWindDirection.gameObject.SetActive(m_photoModeValues.m_gaiaWindSettingsOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
public void SetGaiaWeatherEnabled(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaWeatherEnabled == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_gaiaWeatherEnabled = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
if (!m_isUpdatingValues && m_weather != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_weather.SetWeatherStatus(m_photoModeValues.m_gaiaWeatherEnabled);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_gaiaWeatherEnabled.SetDropdownValue(value);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
if (m_gaiaWeatherToggleRain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleRain.gameObject.SetActive(m_photoModeValues.m_gaiaWeatherEnabled);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaWeatherToggleSnow != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleSnow.gameObject.SetActive(m_photoModeValues.m_gaiaWeatherEnabled);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OnToggleRainClicked()
|
|
|
|
|
|
{
|
|
|
|
|
|
OnSetRain(!m_photoModeValues.m_gaiaWeatherRain);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OnSetRain(bool on)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaWeatherToggleRain == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaWeatherRain = on;
|
|
|
|
|
|
if (m_weather != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (on)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_weather.PlayRain();
|
|
|
|
|
|
if (m_gaiaWeatherToggleSnow != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleSnow.SetButtonInactive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_weather.StopRain();
|
|
|
|
|
|
if (m_gaiaWeatherToggleSnow != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleSnow.SetButtonInactive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
m_gaiaWeatherToggleRain.SetButtonLabel(on ? "Stop Rain" : "Start Rain");
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OnSetRain(bool on, bool setValueOnly)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaWeatherToggleRain == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaWeatherRain = on;
|
|
|
|
|
|
if (m_weather != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!setValueOnly)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (on)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_weather.PlayRain();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_weather.StopRain();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (on)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaWeatherToggleSnow != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleSnow.SetButtonInactive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaWeatherToggleSnow != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleSnow.SetButtonInactive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
m_gaiaWeatherToggleRain.SetButtonLabel(on ? "Stop Rain" : "Start Rain");
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OnToggleSnowClicked()
|
|
|
|
|
|
{
|
|
|
|
|
|
OnSetSnow(!m_photoModeValues.m_gaiaWeatherSnow);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OnSetSnow(bool on)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaWeatherToggleSnow == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaWeatherSnow = on;
|
|
|
|
|
|
if (m_weather != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (on)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_weather.PlaySnow();
|
|
|
|
|
|
if (m_gaiaWeatherToggleRain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleRain.SetButtonInactive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_weather.StopSnow();
|
|
|
|
|
|
if (m_gaiaWeatherToggleRain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleRain.SetButtonInactive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
m_gaiaWeatherToggleSnow.SetButtonLabel(on ? "Stop Snow" : "Start Snow");
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OnSetSnow(bool on, bool setValueOnly)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaWeatherToggleSnow == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaWeatherSnow = on;
|
|
|
|
|
|
if (m_weather != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!setValueOnly)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (on)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_weather.PlaySnow();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_weather.StopSnow();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (on)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaWeatherToggleRain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleRain.SetButtonInactive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaWeatherToggleRain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWeatherToggleRain.SetButtonInactive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
m_gaiaWeatherToggleSnow.SetButtonLabel(on ? "Stop Snow" : "Start Snow");
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetAdditionalLinearFog(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaAdditionalLinearFog == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaAdditionalLinearFog = f;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaAdditionalLinearFog, f);
|
|
|
|
|
|
GaiaAPI.SetAdditionalFogLinear(f);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetAdditionalLinearFog(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetAdditionalLinearFog, m_minAndMaxValues.m_gaiaAdditionalLinearFog, m_gaiaAdditionalLinearFog);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetAdditionalExponentialFog(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaAdditionalExponentialFog == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaAdditionalExponentialFog = f;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaAdditionalExponentialFog, f);
|
|
|
|
|
|
GaiaAPI.SetAdditionalFogExponential(f);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetAdditionalExponentialFog(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetAdditionalExponentialFog, m_minAndMaxValues.m_gaiaAdditionalExponentialFog, m_gaiaAdditionalExponentialFog);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Set Gaia Lighting
|
|
|
|
|
|
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
public void SetGlobalSunIntensity(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER
|
|
|
|
|
|
if (m_isSettingValues || m_hdrpGlobalSunMultiplier == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_globalLightIntensityMultiplier = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
HDRPTimeOfDayAPI.SetGlobalSunMultiplier(f);
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_hdrpGlobalSunMultiplier, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGlobalSunIntensity(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGlobalSunIntensity, new Vector2(0f, 5f), m_hdrpGlobalSunMultiplier);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGlobalFogDensity(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER
|
|
|
|
|
|
if (m_isSettingValues || m_hdrpGlobalFogMultiplier == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_globalLightIntensityMultiplier = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
HDRPTimeOfDayAPI.SetGlobalFogMultiplier(f);
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_hdrpGlobalFogMultiplier, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGlobalFogDensity(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGlobalFogDensity, new Vector2(0f, 5f), m_hdrpGlobalFogMultiplier);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGlobalShadowDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER
|
|
|
|
|
|
if (m_isSettingValues || m_hdrpGlobalShadowMultiplier == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_globalLightIntensityMultiplier = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
HDRPTimeOfDayAPI.SetGlobalShadowMultiplier(f);
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_hdrpGlobalShadowMultiplier, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGlobalShadowDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGlobalShadowDistance, new Vector2(0f, 5f), m_hdrpGlobalShadowMultiplier);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaTime(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaTime == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_gaiaTime = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_hdrpTimeOfDay)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER
|
|
|
|
|
|
HDRPTimeOfDayAPI.SetCurrentTime(f, false);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (GaiaGlobal.Instance != null && GaiaGlobal.Instance.SceneProfile != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaGlobal.Instance.SceneProfile.m_gaiaTimeOfDay.m_todHour = (int)f;
|
|
|
|
|
|
GaiaGlobal.Instance.SceneProfile.m_gaiaTimeOfDay.m_todMinutes = ((f % 1f) * 60);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaTime, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaTime(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaTime, m_minAndMaxValues.m_gaiaTime, m_gaiaTime);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaTimeScale(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaTimeScale == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaTimeScale = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER
|
|
|
|
|
|
HDRPTimeOfDayAPI.GetAutoUpdateMultiplier(out bool autoUpdate, out float autoUpdateValue);
|
|
|
|
|
|
HDRPTimeOfDayAPI.SetAutoUpdateMultiplier(autoUpdate, f);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
if (GaiaGlobal.Instance != null && GaiaGlobal.Instance.SceneProfile != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaGlobal.Instance.SceneProfile.m_gaiaTimeOfDay.m_todDayTimeScale = f;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaTimeScale, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaTimeScale(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaTimeScale, m_minAndMaxValues.m_gaiaTimeScale, m_gaiaTimeScale);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaTimeOfDayEnabled(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaTimeOfDayEnabled == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool boolValue = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_gaiaTimeOfDayEnabled = boolValue;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_hdrpTimeOfDay)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER
|
|
|
|
|
|
HDRPTimeOfDayAPI.GetAutoUpdateMultiplier(out bool autoUpdate, out float autoUpdateValue);
|
|
|
|
|
|
HDRPTimeOfDayAPI.SetAutoUpdateMultiplier(boolValue, autoUpdateValue);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
if (m_gaiaTimeScale != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaTimeScale.gameObject.SetActive(m_hdrpTimeOfDay && m_photoModeValues.m_gaiaTimeOfDayEnabled);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaTimeScale != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaTimeScale.gameObject.SetActive(m_pwWeatherPresent && m_photoModeValues.m_gaiaTimeOfDayEnabled);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (GaiaGlobal.Instance != null && GaiaGlobal.Instance.SceneProfile != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaGlobal.Instance.SceneProfile.m_gaiaTimeOfDay.m_todEnabled = boolValue;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_gaiaTimeOfDayEnabled.SetDropdownValue(value);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
public void SetGaiaSunAngle(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaSunAngle == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_sunRotation = f;
|
|
|
|
|
|
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!m_hdrpTimeOfDay)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!GaiaAPI.SetTimeOfDaySunRotation(f))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_mainSunLight != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_mainSunLight.transform.localEulerAngles =
|
|
|
|
|
|
new Vector3(m_photoModeValues.m_sunPitch, f, 0f);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline && UNITY_2021_2_OR_NEWER
|
|
|
|
|
|
HDRPTimeOfDayAPI.SetDirection(f);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#else
|
|
|
|
|
|
if (m_mainSunLight != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_mainSunLight.transform.localEulerAngles = new Vector3(m_photoModeValues.m_sunPitch, f, 0f);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaSunAngle, f);
|
|
|
|
|
|
if (f < 22.5f || f > 337.5f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunAngle.SetLabel("Sun Rotation (N)", 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 67.5f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunAngle.SetLabel("Sun Rotation (NE)", 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 112.5f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunAngle.SetLabel("Sun Rotation (E)", 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 157.5f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunAngle.SetLabel("Sun Rotation (SE)", 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 202.5f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunAngle.SetLabel("Sun Rotation (S)", 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 247.5f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunAngle.SetLabel("Sun Rotation (SW)", 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (f < 292.5f)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunAngle.SetLabel("Sun Rotation (W)", 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunAngle.SetLabel("Sun Rotation (NW)", 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSunAngle(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaSunAngle, m_minAndMaxValues.m_sunRotation, m_gaiaSunAngle);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSunPitch(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaSunPitch == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_photoModeValues.m_sunPitch = f;
|
|
|
|
|
|
|
|
|
|
|
|
if (m_mainSunLight != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_mainSunLight.transform.localEulerAngles = new Vector3(f, m_photoModeValues.m_sunRotation, 0f);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaSunPitch, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSunPitch(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaSunPitch, m_minAndMaxValues.m_sunPitch, m_gaiaSunPitch);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSunOverride(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaSunOverride == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool boolValue = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_sunOverride = boolValue;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeValues.m_sunOverride)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetUnitySunSettings(m_photoModeValues.m_sunIntensity, m_photoModeValues.m_sunColor, m_photoModeValues.m_sunKelvinValue, m_mainSunLight);
|
|
|
|
|
|
GaiaAPI.SetSunRotation(m_photoModeValues.m_sunPitch, m_photoModeValues.m_sunRotation, m_mainSunLight);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetUnitySunSettings(m_savedPhotoModeValues.m_sunIntensity, m_savedPhotoModeValues.m_sunColor, m_savedPhotoModeValues.m_sunKelvinValue, m_mainSunLight);
|
|
|
|
|
|
GaiaAPI.SetSunRotation(m_savedPhotoModeValues.m_sunPitch, m_savedPhotoModeValues.m_sunRotation, m_mainSunLight);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_gaiaSunOverride.SetDropdownValue(value);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSunAngle != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunAngle.gameObject.SetActive(m_photoModeValues.m_sunOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSunPitch != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunPitch.gameObject.SetActive(m_photoModeValues.m_sunOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSunIntensity != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunIntensity.gameObject.SetActive(m_photoModeValues.m_sunOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSunKelvin != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunKelvin.gameObject.SetActive(m_photoModeValues.m_sunOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSunColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunColor.gameObject.SetActive(m_photoModeValues.m_sunOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSunIntensity(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaSunIntensity == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_sunIntensity = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetUnitySunSettings(m_photoModeValues.m_sunIntensity, m_photoModeValues.m_sunColor, m_photoModeValues.m_sunKelvinValue, m_mainSunLight);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaSunIntensity, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSunIntensity(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaSunIntensity, m_minAndMaxValues.m_sunIntensity, m_gaiaSunIntensity);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSunKelvin(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaSunKelvin == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_sunKelvinValue = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetUnitySunSettings(m_photoModeValues.m_sunIntensity, m_photoModeValues.m_sunColor, m_photoModeValues.m_sunKelvinValue, m_mainSunLight);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaSunKelvin, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSunKelvin(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaSunKelvin, m_minAndMaxValues.m_sunKelvinValue, m_gaiaSunKelvin);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetAmbientIntensity(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaAmbientIntensity == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_photoModeValues.m_ambientIntensity = f;
|
|
|
|
|
|
GaiaAPI.SetAmbientIntensity(f);
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaAmbientIntensity, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetAmbientIntensity(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetAmbientIntensity, m_minAndMaxValues.m_ambientIntensity, m_gaiaAmbientIntensity);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaFogOverride(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaFogOverride == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_fogOverride = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
UpdateFogSettings();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_gaiaFogOverride.SetDropdownValue(value);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaFogMode != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogMode.gameObject.SetActive(m_photoModeValues.m_fogOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaFogColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogColor.gameObject.SetActive(m_photoModeValues.m_fogOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaFogEnd != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogEnd.gameObject.SetActive(m_photoModeValues.m_fogOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (RenderSettings.fogMode == FogMode.Linear)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaFogStart != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogStart.gameObject.SetActive(m_photoModeValues.m_fogOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogEnd != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogEnd.gameObject.SetActive(m_photoModeValues.m_fogOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogDensity != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogDensity.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaFogStart != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogStart.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogEnd != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogEnd.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogDensity != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogDensity.gameObject.SetActive(m_photoModeValues.m_fogOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaFogMode(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaFogMode == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
switch (f)
|
|
|
|
|
|
{
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_fogMode = FogMode.Linear;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_fogMode = FogMode.Exponential;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_fogMode = FogMode.ExponentialSquared;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
UpdateFogSettings();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (RenderSettings.fogMode == FogMode.Linear)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaFogStart != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogStart.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogEnd != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogEnd.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogDensity != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogDensity.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaFogStart != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogStart.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogEnd != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogEnd.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogDensity != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogDensity.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_gaiaFogMode.SetDropdownValue(f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaFogStart(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaFogStart == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_fogStart = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
UpdateFogSettings();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaFogStart, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaFogStart(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaFogStart, m_minAndMaxValues.m_fogStart, m_gaiaFogStart);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaFogDensity(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaFogDensity == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_fogDensity = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
UpdateFogSettings();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaFogDensity, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaFogDensity(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaFogDensity, m_minAndMaxValues.m_fogDensity, m_gaiaFogDensity);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaFogEnd(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaFogEnd == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_fogEnd = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
UpdateFogSettings();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaFogEnd, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaFogEnd(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaFogEnd, m_minAndMaxValues.m_fogEnd, m_gaiaFogEnd);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSkyboxOverride(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaSkyboxOverride == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_skyboxOverride = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeValues.m_skyboxOverride)
|
|
|
|
|
|
{
|
|
|
|
|
|
UpdateHDRPSkyValues(m_photoModeValues.m_skyboxRotation, m_photoModeValues.m_skyboxExposure);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
UpdateHDRPSkyValues(m_savedPhotoModeValues.m_skyboxRotation, m_savedPhotoModeValues.m_skyboxExposure);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeValues.m_skyboxOverride)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetUnityHDRISkybox(m_photoModeValues.m_skyboxExposure, m_photoModeValues.m_skyboxRotation, m_photoModeValues.m_skyboxTint);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetUnityHDRISkybox(m_savedPhotoModeValues.m_skyboxExposure, m_savedPhotoModeValues.m_skyboxRotation, m_savedPhotoModeValues.m_skyboxTint);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_gaiaSkyboxOverride.SetDropdownValue(value);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSkyboxRotation != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSkyboxRotation.gameObject.SetActive(m_photoModeValues.m_skyboxOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSkyboxExposure != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSkyboxExposure.gameObject.SetActive(m_photoModeValues.m_skyboxOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaSkyboxTint != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSkyboxTint.gameObject.SetActive(m_photoModeValues.m_skyboxOverride);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSkyboxRotation(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaSkyboxRotation == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_skyboxRotation = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
UpdateHDRPSkyValues(m_photoModeValues.m_skyboxRotation, m_photoModeValues.m_skyboxExposure);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetUnityHDRISkybox(m_photoModeValues.m_skyboxExposure, m_photoModeValues.m_skyboxRotation, m_photoModeValues.m_skyboxTint);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaSkyboxRotation, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSkyboxRotation(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaSkyboxRotation, m_minAndMaxValues.m_skyboxRotation, m_gaiaSkyboxRotation);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSkyboxExposure(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaSkyboxExposure == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_skyboxExposure = f;
|
|
|
|
|
|
if (!m_isUpdatingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
UpdateHDRPSkyValues(m_photoModeValues.m_skyboxRotation, m_photoModeValues.m_skyboxExposure);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetUnityHDRISkybox(m_photoModeValues.m_skyboxExposure, m_photoModeValues.m_skyboxRotation, m_photoModeValues.m_skyboxTint);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaSkyboxExposure, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaSkyboxExposure(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaSkyboxExposure, m_minAndMaxValues.m_skyboxExposure, m_gaiaSkyboxExposure);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void UpdateSkyboxTint()
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetUnityHDRISkybox(m_photoModeValues.m_skyboxExposure, m_photoModeValues.m_skyboxRotation, m_photoModeValues.m_skyboxTint);
|
|
|
|
|
|
if (m_gaiaSkyboxTint != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSkyboxTint.SetColorPreviewImage(m_photoModeValues.m_skyboxTint);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void UpdateSunColor()
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetUnitySunSettings(m_photoModeValues.m_sunIntensity, m_photoModeValues.m_sunColor, m_photoModeValues.m_sunKelvinValue, m_mainSunLight);
|
|
|
|
|
|
if (m_gaiaSunColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaSunColor.SetColorPreviewImage(m_photoModeValues.m_sunColor);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void UpdateAmbientSkyColor()
|
|
|
|
|
|
{
|
|
|
|
|
|
Color ambientColor = m_photoModeValues.m_ambientSkyColor;
|
|
|
|
|
|
ambientColor.a = 1f;
|
|
|
|
|
|
GaiaAPI.SetAmbientColor(ambientColor, m_photoModeValues.m_ambientEquatorColor, m_photoModeValues.m_ambientGroundColor);
|
|
|
|
|
|
if (m_ambientSkyColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_ambientSkyColor.SetColorPreviewImage(ambientColor, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void UpdateAmbientEquaotrColor()
|
|
|
|
|
|
{
|
|
|
|
|
|
Color ambientColor = m_photoModeValues.m_ambientEquatorColor;
|
|
|
|
|
|
ambientColor.a = 1f;
|
|
|
|
|
|
GaiaAPI.SetAmbientColor(m_photoModeValues.m_ambientSkyColor, ambientColor, m_photoModeValues.m_ambientGroundColor);
|
|
|
|
|
|
if (m_ambientEquatorColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_ambientEquatorColor.SetColorPreviewImage(ambientColor, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void UpdateAmbientGroundColor()
|
|
|
|
|
|
{
|
|
|
|
|
|
Color ambientColor = m_photoModeValues.m_ambientGroundColor;
|
|
|
|
|
|
ambientColor.a = 1f;
|
|
|
|
|
|
GaiaAPI.SetAmbientColor(m_photoModeValues.m_ambientSkyColor, m_photoModeValues.m_ambientEquatorColor, ambientColor);
|
|
|
|
|
|
if (m_ambientGroundColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_ambientGroundColor.SetColorPreviewImage(ambientColor, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#region HDRP
|
|
|
|
|
|
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
public void SetOverrideDensityVolume(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_overrideDensityVolume == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_photoModeValues.m_overrideDensityVolume = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
m_overrideDensityVolume.SetDropdownValue(value);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_densityVolumeAlbedoColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_densityVolumeAlbedoColor.gameObject.SetActive(m_photoModeValues.m_overrideDensityVolume);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_densityVolumeFogDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_densityVolumeFogDistance.gameObject.SetActive(m_photoModeValues.m_overrideDensityVolume);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_densityVolumeEffectType != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_densityVolumeEffectType.gameObject.SetActive(m_photoModeValues.m_overrideDensityVolume);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_densityVolumeTilingResolution != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_densityVolumeTilingResolution.gameObject.SetActive(m_photoModeValues.m_overrideDensityVolume);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_photoModeValues.m_overrideDensityVolume)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetHDRPDensityVolume(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetHDRPDensityVolume(m_savedPhotoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDensityVolumeEffectType(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_densityVolumeEffectType == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_photoModeValues.m_densityVolumeEffectType = f;
|
|
|
|
|
|
m_densityVolumeEffectType.SetDropdownValue(f);
|
|
|
|
|
|
|
|
|
|
|
|
GaiaAPI.SetHDRPDensityVolume(m_photoModeValues);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDensityVolumeTilingResolution(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_densityVolumeTilingResolution == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
m_photoModeValues.m_densityVolumeTilingResolution = f;
|
|
|
|
|
|
m_densityVolumeTilingResolution.SetDropdownValue(f);
|
|
|
|
|
|
|
|
|
|
|
|
GaiaAPI.SetHDRPDensityVolume(m_photoModeValues);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDensityVolumeFogDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_densityVolumeFogDistance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_densityVolumeFogDistance = f;
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_densityVolumeFogDistance, f);
|
|
|
|
|
|
GaiaAPI.SetHDRPDensityVolume(m_photoModeValues);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDensityVolumeFogDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetDensityVolumeFogDistance, m_minAndMaxValues.m_densityVolumeFogDistance, m_densityVolumeFogDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void UpdateDensityVolumeAlbedoColor()
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetHDRPDensityVolume(m_photoModeValues);
|
|
|
|
|
|
if (m_densityVolumeAlbedoColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_densityVolumeAlbedoColor.SetColorPreviewImage(m_photoModeValues.m_densityVolumeAlbedoColor);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
private void UpdateFogSettings()
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeValues.m_fogOverride)
|
|
|
|
|
|
{
|
|
|
|
|
|
UpdateHDRPFogValues(m_photoModeValues.m_fogEnd, m_photoModeValues.m_fogColor);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
UpdateHDRPFogValues(m_savedPhotoModeValues.m_fogEnd, m_savedPhotoModeValues.m_fogColor);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_pwWeatherPresent)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
GaiaAPI.SetAdditionalFogColor(m_photoModeValues.m_fogColor);
|
|
|
|
|
|
if (m_gaiaFogColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogColor.SetColorPreviewImage(m_photoModeValues.m_fogColor);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeValues.m_fogOverride)
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetFogSettings(m_photoModeValues.m_fogMode, m_photoModeValues.m_fogColor, m_photoModeValues.m_fogDensity, m_photoModeValues.m_fogStart, m_photoModeValues.m_fogEnd);
|
|
|
|
|
|
if (m_gaiaFogColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogColor.SetColorPreviewImage(m_photoModeValues.m_fogColor);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetFogSettings(m_savedPhotoModeValues.m_fogMode, m_savedPhotoModeValues.m_fogColor, m_savedPhotoModeValues.m_fogDensity, m_savedPhotoModeValues.m_fogStart, m_savedPhotoModeValues.m_fogEnd);
|
|
|
|
|
|
if (m_gaiaFogColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogColor.SetColorPreviewImage(m_photoModeValues.m_fogColor);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaFogColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaFogColor.SetColorPreviewImage(m_photoModeValues.m_fogColor);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private void UpdateHDRPSkyValues(float rotation, float exposure)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
GaiaAPI.SetUnityHDRISkyboxHDRP(rotation, exposure);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
private void UpdateHDRPFogValues(float fogDistance, Color fogColor)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
GaiaAPI.SetUnityFogHDRP(fogDistance, fogColor);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Set Gaia Water
|
|
|
|
|
|
|
|
|
|
|
|
public void SetGaiaWaterReflectionEnabled(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaWaterReflectionsEnabled == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool boolValue = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
m_photoModeValues.m_gaiaWaterReflectionEnabled = boolValue;
|
|
|
|
|
|
m_gaiaWaterReflectionsEnabled.SetDropdownValue(value);
|
|
|
|
|
|
GaiaAPI.SetWaterReflections(boolValue);
|
|
|
|
|
|
if (m_gaiaWaterReflectionDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWaterReflectionDistance.gameObject.SetActive(boolValue);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaWaterReflectionResolution != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWaterReflectionResolution.gameObject.SetActive(boolValue);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaWaterReflectionLODBias != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaWaterReflectionLODBias.gameObject.SetActive(boolValue);
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaWaterReflectionDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaWaterReflectionDistance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_gaiaWaterReflectionDistance = f;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaWaterReflectionDistance, f);
|
|
|
|
|
|
GaiaAPI.SetWaterReflectionExtraDistance(f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaWaterReflectionDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaWaterReflectionDistance, m_minAndMaxValues.m_gaiaWaterReflectionDistance, m_gaiaWaterReflectionDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaWaterReflectionResolution(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaWaterReflectionResolution == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_gaiaWaterReflectionResolution = f;
|
|
|
|
|
|
m_gaiaWaterReflectionResolution.SetDropdownValue(f);
|
|
|
|
|
|
GaiaAPI.SetWaterResolutionQuality(f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaWaterReflectionLODBias(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaWaterReflectionLODBias == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_gaiaReflectionsLODBias = f;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaWaterReflectionLODBias, f);
|
|
|
|
|
|
GaiaAPI.SetHDRPWaterLODBias(f);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaWaterReflectionLODBias(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaWaterReflectionLODBias, m_minAndMaxValues.m_gaiaReflectionsLODBias, m_gaiaWaterReflectionLODBias);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaUnderwaterFogDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaUnderwaterFogDistance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_gaiaUnderwaterFogDistance = f;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (RenderSettings.fogMode)
|
|
|
|
|
|
{
|
|
|
|
|
|
case FogMode.Linear:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_gaiaUnderwaterFogDistance = f;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_photoModeValues.m_gaiaUnderwaterFogDensity = f;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaUnderwaterFogDistance, f);
|
|
|
|
|
|
GaiaAPI.SetUnderwaterFogDensity(m_photoModeValues.m_gaiaUnderwaterFogDensity, m_photoModeValues.m_gaiaUnderwaterFogDistance);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaUnderwaterFogDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_renderPipeline == GaiaConstants.EnvironmentRenderer.HighDefinition)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaUnderwaterFogDistance, m_minAndMaxValues.m_gaiaUnderwaterFogDistance, m_gaiaUnderwaterFogDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (RenderSettings.fogMode)
|
|
|
|
|
|
{
|
|
|
|
|
|
case FogMode.Linear:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaUnderwaterFogDistance, m_minAndMaxValues.m_gaiaUnderwaterFogDistance, m_gaiaUnderwaterFogDistance);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaUnderwaterFogDistance, m_minAndMaxValues.m_gaiaUnderwaterFogDensity, m_gaiaUnderwaterFogDistance);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaUnderwaterVolume(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaUnderwaterVolume == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_gaiaUnderwaterVolume = f;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaUnderwaterVolume, f);
|
|
|
|
|
|
GaiaAPI.SetUnderwaterVolume(f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGaiaUnderwaterVolume(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGaiaUnderwaterVolume, m_minAndMaxValues.m_0To1, m_gaiaUnderwaterVolume);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void UpdateUnderwaterFogColor()
|
|
|
|
|
|
{
|
|
|
|
|
|
GaiaAPI.SetUnderwaterFogColor(m_photoModeValues.m_gaiaUnderwaterFogColor);
|
|
|
|
|
|
if (m_gaiaUnderwaterFogColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaUnderwaterFogColor.SetColorPreviewImage(m_photoModeValues.m_gaiaUnderwaterFogColor);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Set Gaia Post FX
|
|
|
|
|
|
|
|
|
|
|
|
public void SetDOFEnabled(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool boolValue = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_gaiaPostFXDOFEnabled == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_depthOfField != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFEnabled.SetDropdownValue(value);
|
|
|
|
|
|
m_photoModeValues.m_dofActive = boolValue;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettings(m_photoModeValues);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(boolValue);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(boolValue);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(boolValue);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFKernelSizeBuiltIn != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFKernelSizeBuiltIn.gameObject.SetActive(boolValue);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeValues.m_autoDOFFocus && boolValue)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(boolValue);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_gaiaPostFXDOFEnabled == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFEnabled.SetDropdownValue(value);
|
|
|
|
|
|
m_photoModeValues.m_dofActive = boolValue;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsURP(m_photoModeValues);
|
|
|
|
|
|
|
|
|
|
|
|
if (!m_photoModeValues.m_dofActive)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFModeURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Bokeh
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Gaussian
|
|
|
|
|
|
if (m_gaiaPostFXDOFStartDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFStartDistanceURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFEndDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFEndDistanceURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFMaxRadiusURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFMaxRadiusURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
SetURPUIModeSetup();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
if (m_gaiaPostFXDOFEnabled == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_depthOfFieldHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFEnabled.SetDropdownValue(value);
|
|
|
|
|
|
m_photoModeValues.m_dofActive = boolValue;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsHDRP(m_photoModeValues);
|
|
|
|
|
|
|
|
|
|
|
|
SetHDRPDOFMode();
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFAutoFocusEnabled(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool boolValue = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
|
|
|
|
|
|
SyncAutoFocus();
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_depthOfField != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.SetDropdownValue(value);
|
|
|
|
|
|
m_photoModeValues.m_autoDOFFocus = boolValue;
|
|
|
|
|
|
GaiaAPI.SetAutoFocusDepthOfField(boolValue);
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettings(m_photoModeValues);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null && m_photoModeValues.m_dofActive)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (boolValue)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.SetDropdownValue(value);
|
|
|
|
|
|
m_photoModeValues.m_autoDOFFocus = boolValue;
|
|
|
|
|
|
GaiaAPI.SetAutoFocusDepthOfField(boolValue);
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsURP(m_photoModeValues);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null && m_photoModeValues.m_dofActive)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (boolValue)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_depthOfFieldHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.SetDropdownValue(value);
|
|
|
|
|
|
m_photoModeValues.m_autoDOFFocus = boolValue;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsHDRP(m_photoModeValues);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (boolValue && m_photoModeValues.m_dofActive)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_photoModeValues.m_dofActive)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFAperture(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_photoModeValues != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFAperture, f);
|
|
|
|
|
|
m_photoModeValues.m_dofAperture = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettings(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFAperture, f);
|
|
|
|
|
|
m_photoModeValues.m_dofAperture = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsURP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFAperture, f);
|
|
|
|
|
|
m_photoModeValues.m_cameraAperture = f;
|
|
|
|
|
|
GaiaAPI.SetHDRPCameraSettings(f, m_photoModeValues.m_cameraFocalLength, m_targetCamera);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFAperture(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2 || UPPipeline || HDPipeline
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetDOFAperture, m_minAndMaxValues.m_cameraAperture, m_gaiaPostFXDOFAperture);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFFocalLength(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_depthOfField != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFFocalLength, f);
|
|
|
|
|
|
m_photoModeValues.m_dofFocalLength = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettings(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFFocalLength, f);
|
|
|
|
|
|
m_photoModeValues.m_dofFocalLength = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsURP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFFocalLength, f);
|
|
|
|
|
|
m_photoModeValues.m_cameraFocalLength = f;
|
|
|
|
|
|
GaiaAPI.SetHDRPCameraSettings(m_photoModeValues.m_cameraAperture, f, m_targetCamera);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFFocalLength(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2 || UPPipeline || HDPipeline
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetDOFFocalLength, m_minAndMaxValues.m_cameraFocalLength, m_gaiaPostFXDOFFocalLength);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFFocusDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_depthOfField != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFFocusDistance, f);
|
|
|
|
|
|
m_photoModeValues.m_dofFocusDistance = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettings(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFFocusDistance, f);
|
|
|
|
|
|
m_photoModeValues.m_dofFocusDistance = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsURP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_depthOfFieldHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFFocusDistance, f);
|
|
|
|
|
|
m_photoModeValues.m_dofFocusDistance = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsHDRP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFFocusDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2 || UPPipeline || HDPipeline
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetDOFFocusDistance, m_minAndMaxValues.m_postFXDOFFocusDistance, m_gaiaPostFXDOFFocusDistance);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetDOFFocusDistance, m_minAndMaxValues.m_postFXDOFFocusDistanceURP, m_gaiaPostFXDOFFocusDistance);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetDOFFocusDistance, m_minAndMaxValues.m_postFXDOFFocusDistanceHDRP, m_gaiaPostFXDOFFocusDistance);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFKernelSize(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXDOFKernelSizeBuiltIn == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_depthOfField != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFKernelSizeBuiltIn.SetDropdownValue(f);
|
|
|
|
|
|
m_photoModeValues.m_dofKernelSize = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettings(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetAutoExposure(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXExposure == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_postFXExposure = f;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXExposure, f);
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
GaiaAPI.SetPostFXExposure(f);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
GaiaAPI.SetPostExposureURP(f);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
GaiaAPI.SetPostExposureHDRP(f, ExposureMode.Fixed);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetAutoExposure(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetAutoExposure, m_minAndMaxValues.m_postFXExposure, m_gaiaPostFXExposure);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetAutoExposure, m_minAndMaxValues.m_postFXExposureURP, m_gaiaPostFXExposure);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetAutoExposure, m_minAndMaxValues.m_postFXExposureHDRP, m_gaiaPostFXExposure);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#region URP
|
|
|
|
|
|
|
|
|
|
|
|
private void SetURPUIModeSetup()
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
switch (m_photoModeValues.m_dofFocusModeURP)
|
|
|
|
|
|
{
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFModeURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Bokeh
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Gaussian
|
|
|
|
|
|
if (m_gaiaPostFXDOFStartDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFStartDistanceURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFEndDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFEndDistanceURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFMaxRadiusURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFMaxRadiusURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFModeURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Bokeh
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Gaussian
|
|
|
|
|
|
if (m_gaiaPostFXDOFStartDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFStartDistanceURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFEndDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFEndDistanceURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFMaxRadiusURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFMaxRadiusURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFModeURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Bokeh
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_photoModeValues.m_autoDOFFocus)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Gaussian
|
|
|
|
|
|
if (m_gaiaPostFXDOFStartDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFStartDistanceURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFEndDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFEndDistanceURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFMaxRadiusURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFMaxRadiusURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFModeURP(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXDOFModeURP == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeURP.SetDropdownValue(f);
|
|
|
|
|
|
m_photoModeValues.m_dofFocusModeURP = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsURP(m_photoModeValues);
|
|
|
|
|
|
|
|
|
|
|
|
switch (m_photoModeValues.m_dofFocusModeURP)
|
|
|
|
|
|
{
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFModeURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Bokeh
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Gaussian
|
|
|
|
|
|
if (m_gaiaPostFXDOFStartDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFStartDistanceURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFEndDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFEndDistanceURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFMaxRadiusURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFMaxRadiusURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFModeURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Bokeh
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Gaussian
|
|
|
|
|
|
if (m_gaiaPostFXDOFStartDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFStartDistanceURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFEndDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFEndDistanceURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFMaxRadiusURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFMaxRadiusURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFModeURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeURP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Bokeh
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_photoModeValues.m_autoDOFFocus)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Gaussian
|
|
|
|
|
|
if (m_gaiaPostFXDOFStartDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFStartDistanceURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFEndDistanceURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFEndDistanceURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFMaxRadiusURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFMaxRadiusURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityURP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFHighQualityURP(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXDOFHighQualityURP == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool boolValue = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityURP.SetDropdownValue(value);
|
|
|
|
|
|
m_photoModeValues.m_dofHighQualityURP = boolValue;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsURP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFStartBlurDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXDOFStartDistanceURP == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFStartDistanceURP, f);
|
|
|
|
|
|
m_photoModeValues.m_dofStartBlurURP = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsURP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFStartBlurDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetDOFStartBlurDistance, m_minAndMaxValues.m_postFXDOFGaussianBlurStartURP, m_gaiaPostFXDOFStartDistanceURP);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFEndBlurDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXDOFEndDistanceURP == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFEndDistanceURP, f);
|
|
|
|
|
|
m_photoModeValues.m_dofEndBlurURP = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsURP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFEndBlurDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetDOFEndBlurDistance, m_minAndMaxValues.m_postFXDOFGaussianBlurEndURP, m_gaiaPostFXDOFEndDistanceURP);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFMaxBlurRadius(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXDOFMaxRadiusURP == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_depthOfFieldURP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFMaxRadiusURP, f);
|
|
|
|
|
|
m_photoModeValues.m_dofMaxRadiusBlur = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsURP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFMaxBlurRadius(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetDOFMaxBlurRadius, m_minAndMaxValues.m_postFXDOFGaussianBlurMaxRadiusURP, m_gaiaPostFXDOFMaxRadiusURP);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region HDRP
|
|
|
|
|
|
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
public void SetDOFModeHDRP(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXDOFModeHDRP == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_depthOfFieldHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeHDRP.SetDropdownValue(f);
|
|
|
|
|
|
m_photoModeValues.m_dofFocusModeHDRP = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsHDRP(m_photoModeValues);
|
|
|
|
|
|
|
|
|
|
|
|
SetHDRPDOFMode();
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetDOFQualityHDRP(int f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXDOFHighQualityHDRP == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_depthOfFieldHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityHDRP.SetDropdownValue(f);
|
|
|
|
|
|
m_photoModeValues.m_dofQualityHDRP = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsHDRP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetHDRPDOFNearStartBlur(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXDOFNearStartDistanceHDRP == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_photoModeValues != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFNearStartDistanceHDRP, f);
|
|
|
|
|
|
m_photoModeValues.m_dofNearBlurStart = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsHDRP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetHDRPDOFNearStartBlur(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetHDRPDOFNearStartBlur, m_minAndMaxValues.m_postFXDOFNearBlurStart, m_gaiaPostFXDOFNearStartDistanceHDRP);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetHDRPDOFNearEndBlur(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXDOFNearEndDistanceHDRP == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_depthOfFieldHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFNearEndDistanceHDRP, f);
|
|
|
|
|
|
m_photoModeValues.m_dofNearBlurEnd = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsHDRP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetHDRPDOFNearEndBlur(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetHDRPDOFNearEndBlur, m_minAndMaxValues.m_postFXDOFNearBlurEnd, m_gaiaPostFXDOFNearEndDistanceHDRP);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetHDRPDOFFarStartBlur(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXDOFFarStartDistanceHDRP == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_photoModeValues != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFFarStartDistanceHDRP, f);
|
|
|
|
|
|
m_photoModeValues.m_dofFarBlurStart = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsHDRP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetHDRPDOFFarStartBlur(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetHDRPDOFFarStartBlur, m_minAndMaxValues.m_postFXDOFFarBlurStart, m_gaiaPostFXDOFFarStartDistanceHDRP);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetHDRPDOFFarEndBlur(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_gaiaPostFXDOFFarEndDistanceHDRP == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_depthOfFieldHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_gaiaPostFXDOFFarEndDistanceHDRP, f);
|
|
|
|
|
|
m_photoModeValues.m_dofFarBlurEnd = f;
|
|
|
|
|
|
GaiaAPI.SetDepthOfFieldSettingsHDRP(m_photoModeValues);
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetHDRPDOFFarEndBlur(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetHDRPDOFFarEndBlur, m_minAndMaxValues.m_postFXDOFFarBlurEnd, m_gaiaPostFXDOFFarEndDistanceHDRP);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void SetHDRPDOFMode()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!m_photoModeValues.m_dofActive)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFModeHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//UsePhysicalCamera
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Manual
|
|
|
|
|
|
if (m_gaiaPostFXDOFNearStartDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFNearStartDistanceHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFNearEndDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFNearEndDistanceHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFarStartDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFarStartDistanceHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFarEndDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFarEndDistanceHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFMaxRadius != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFMaxRadius.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_photoModeValues.m_dofFocusModeHDRP)
|
|
|
|
|
|
{
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
{
|
|
|
|
|
|
//UsePhysicalCamera
|
|
|
|
|
|
if (m_gaiaPostFXDOFModeHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeHDRP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Manual
|
|
|
|
|
|
if (m_gaiaPostFXDOFNearStartDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFNearStartDistanceHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFNearEndDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFNearEndDistanceHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFarStartDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFarStartDistanceHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFarEndDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFarEndDistanceHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFMaxRadius != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFMaxRadius.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
{
|
|
|
|
|
|
//UsePhysicalCamera
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_photoModeValues.m_autoDOFFocus)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityHDRP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFModeHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeHDRP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Manual
|
|
|
|
|
|
if (m_gaiaPostFXDOFNearStartDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFNearStartDistanceHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFNearEndDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFNearEndDistanceHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFarStartDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFarStartDistanceHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFarEndDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFarEndDistanceHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFMaxRadius != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFMaxRadius.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityHDRP.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
{
|
|
|
|
|
|
//UsePhysicalCamera
|
|
|
|
|
|
if (m_gaiaPostFXDOFAutoFocus != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAutoFocus.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocusDistance != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocusDistance.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFAperture != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFAperture.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFocalLength != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFocalLength.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//Manual
|
|
|
|
|
|
if (m_gaiaPostFXDOFNearStartDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFNearStartDistanceHDRP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFNearEndDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFNearEndDistanceHDRP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFarStartDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFarStartDistanceHDRP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFFarEndDistanceHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFFarEndDistanceHDRP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFMaxRadius != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFMaxRadius.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFHighQualityHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFHighQualityHDRP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_gaiaPostFXDOFModeHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_gaiaPostFXDOFModeHDRP.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Set Grass System
|
|
|
|
|
|
|
|
|
|
|
|
#if FLORA_PRESENT
|
|
|
|
|
|
public void SetGlobalGrassDensity(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_globalGrassDensity == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_globalGrassDensity = f;
|
|
|
|
|
|
if (m_detailManager != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_detailManager.Settings.ObjectGlobalDensityModifier = f;
|
|
|
|
|
|
m_detailManager.SetGlobals();
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_globalGrassDensity, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGlobalGrassDensity(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGlobalGrassDensity, m_minAndMaxValues.m_globalGrassDensity, m_globalGrassDensity);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGlobalGrassDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_globalGrassDistance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_globalGrassDistance = f;
|
|
|
|
|
|
if (m_detailManager != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_detailManager.Settings.ObjectGlobalDistanceModifier = f;
|
|
|
|
|
|
m_detailManager.SetGlobals();
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_globalGrassDistance, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGlobalGrassDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGlobalGrassDistance, m_minAndMaxValues.m_globalGrassDistance, m_globalGrassDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGlobalCameraCellDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_globalCameraCellDistance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_cameraCellDistance = f;
|
|
|
|
|
|
if (m_detailManager != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_detailManager.Settings.TerrainTileGlobalDistanceModifier = f;
|
|
|
|
|
|
m_detailManager.SetGlobals();
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_globalCameraCellDistance, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGlobalCameraCellDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGlobalCameraCellDistance, m_minAndMaxValues.m_cameraCellDistance, m_globalCameraCellDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGlobalCameraCellSubdivision(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_globalCameraCellSubdivision == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_photoModeValues.m_cameraCellSubdivision = (int)f;
|
|
|
|
|
|
if (m_detailManager != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_detailManager.Settings.CameraCellGlobalSubdivisionModifier = (int)f;
|
|
|
|
|
|
m_detailManager.SetGlobals();
|
|
|
|
|
|
}
|
|
|
|
|
|
m_isSettingValues = true;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_globalCameraCellSubdivision, f);
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetGlobalCameraCellSubdivision(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetGlobalCameraCellSubdivision, m_minAndMaxValues.m_cameraCellSubdivision, m_globalCameraCellSubdivision);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Terrain Functions
|
|
|
|
|
|
|
|
|
|
|
|
public void SetTerrainDetailDensity(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_terrainDetailDensity == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_terrainDetailDensity = f;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_terrainDetailDensity, f);
|
|
|
|
|
|
GaiaAPI.SetTerrainDetails(f, m_photoModeValues.m_terrainDetailDistance);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetTerrainDetailDensity(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetTerrainDetailDensity, m_minAndMaxValues.m_terrainDetailDensity, m_terrainDetailDensity);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetTerrainDetailDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_terrainDetailDistance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_terrainDetailDistance = f;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_terrainDetailDistance, f);
|
|
|
|
|
|
GaiaAPI.SetTerrainDetails(m_photoModeValues.m_terrainDetailDensity, f);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetTerrainDetailDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetTerrainDetailDistance, m_minAndMaxValues.m_terrainDetailDistance, m_terrainDetailDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetTerrainHeightResolution(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_terrainHeightResolution == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_terrainPixelError = f;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_terrainHeightResolution, f);
|
|
|
|
|
|
GaiaAPI.SetTerrainPixelErrorAndBaseMapTexture(f, m_photoModeValues.m_terrainBasemapDistance);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetTerrainHeightResolution(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetTerrainHeightResolution, m_minAndMaxValues.m_terrainPixelError, m_terrainHeightResolution);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetTerrainTextureDistance(float f)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_terrainTextureDistance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_terrainBasemapDistance = f;
|
|
|
|
|
|
PhotoModeUtils.SetSliderValue(m_terrainTextureDistance, f);
|
|
|
|
|
|
GaiaAPI.SetTerrainPixelErrorAndBaseMapTexture(m_photoModeValues.m_terrainPixelError, f);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetTerrainTextureDistance(string val)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
PhotoModeUtils.GetAndSetFloatValue(val, SetTerrainTextureDistance, m_minAndMaxValues.m_terrainBasemapDistance,m_terrainTextureDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetTerrainDrawInstanced(int value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_isSettingValues || m_terrainDrawInstanced == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
m_photoModeValues.m_drawInstanced = PhotoModeUtils.ConvertIntToBool(value);
|
|
|
|
|
|
m_terrainDrawInstanced.SetDropdownValue(value);
|
|
|
|
|
|
GaiaAPI.SetTerrainDrawInstanced(m_photoModeValues.m_drawInstanced);
|
|
|
|
|
|
|
|
|
|
|
|
m_isSettingValues = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region UI Helper Functions
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Refreshes all the runtime photo mode UI
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void RefreshAllUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
SetAllInputFieldsToTrue();
|
|
|
|
|
|
if (m_transformSettings.m_photoMode != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetUnityScreenshotResolution(m_photoModeValues.m_screenshotResolution);
|
|
|
|
|
|
SetUnityScreenshotImageFormat(m_photoModeValues.m_screenshotImageFormat);
|
|
|
|
|
|
SetPhotoModeLoadSettings(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_loadSavedSettings));
|
|
|
|
|
|
SetPhotoModeRevertOnDisabledSettings(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_revertOnDisabled));
|
|
|
|
|
|
SetPhotoModeShowFPS(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_showFPS));
|
|
|
|
|
|
SetPhotoModeShowReticule(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_showReticle));
|
|
|
|
|
|
SetPhotoModeShowRuleOfThirds(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_showRuleOfThirds));
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_transformSettings.m_unity != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetUnityVolume(m_photoModeValues.m_globalVolume);
|
|
|
|
|
|
SetUnityLODBias(m_photoModeValues.m_lodBias);
|
|
|
|
|
|
SetUnityShadowResolution(m_photoModeValues.m_shadowResolution);
|
|
|
|
|
|
SetUnityVSync(m_photoModeValues.m_vSync);
|
|
|
|
|
|
SetUnityTargetFPS(m_photoModeValues.m_targetFPS);
|
|
|
|
|
|
SetUnityShadowDistance(m_photoModeValues.m_shadowDistance);
|
|
|
|
|
|
SetUnityShadowCascades(m_photoModeValues.m_shadowCascades);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_transformSettings.m_camera != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetUnityAA(m_photoModeValues.m_antiAliasing);
|
|
|
|
|
|
SetUnityFieldOfView(m_photoModeValues.m_fieldOfView);
|
|
|
|
|
|
SetUnityCameraRoll(m_photoModeValues.m_cameraRoll);
|
|
|
|
|
|
SetUnityCullingDistance(m_photoModeValues.m_gaiaCullinDistance);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_transformSettings.m_water != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaWaterReflectionEnabled(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_gaiaWaterReflectionEnabled));
|
|
|
|
|
|
SetGaiaWaterReflectionDistance(m_photoModeValues.m_gaiaWaterReflectionDistance);
|
|
|
|
|
|
SetGaiaWaterReflectionResolution(m_photoModeValues.m_gaiaWaterReflectionResolution);
|
|
|
|
|
|
SetGaiaWaterReflectionLODBias(m_photoModeValues.m_gaiaReflectionsLODBias);
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaUnderwaterFogDistance(m_photoModeValues.m_gaiaUnderwaterFogDistance);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (RenderSettings.fogMode)
|
|
|
|
|
|
{
|
|
|
|
|
|
case FogMode.Linear:
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaUnderwaterFogDistance(m_photoModeValues.m_gaiaUnderwaterFogDistance);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaUnderwaterFogDistance(m_photoModeValues.m_gaiaUnderwaterFogDensity);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
UpdateUnderwaterFogColor();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_transformSettings.m_postFX != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.BuiltIn:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UNITY_POST_PROCESSING_STACK_V2
|
|
|
|
|
|
SetDOFEnabled(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_dofActive));
|
|
|
|
|
|
SetDOFAutoFocusEnabled(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_autoDOFFocus));
|
|
|
|
|
|
SetDOFFocusDistance(m_photoModeValues.m_dofFocusDistance);
|
|
|
|
|
|
SetDOFAperture(m_photoModeValues.m_dofAperture);
|
|
|
|
|
|
SetDOFFocalLength(m_photoModeValues.m_dofFocalLength);
|
|
|
|
|
|
SetDOFKernelSize((int)m_photoModeValues.m_dofKernelSize);
|
|
|
|
|
|
SetAutoExposure(m_photoModeValues.m_postFXExposure);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.Universal:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if UPPipeline
|
|
|
|
|
|
SetDOFEnabled(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_dofActive));
|
|
|
|
|
|
SetDOFAutoFocusEnabled(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_autoDOFFocus));
|
|
|
|
|
|
SetDOFModeURP(m_photoModeValues.m_dofFocusModeURP);
|
|
|
|
|
|
SetDOFFocusDistance(m_photoModeValues.m_dofFocusDistance);
|
|
|
|
|
|
SetDOFAperture(m_photoModeValues.m_dofAperture);
|
|
|
|
|
|
SetDOFFocalLength(m_photoModeValues.m_dofFocalLength);
|
|
|
|
|
|
SetDOFStartBlurDistance(m_photoModeValues.m_dofStartBlurURP);
|
|
|
|
|
|
SetDOFEndBlurDistance(m_photoModeValues.m_dofEndBlurURP);
|
|
|
|
|
|
SetDOFMaxBlurRadius(m_photoModeValues.m_dofMaxRadiusBlur);
|
|
|
|
|
|
SetDOFHighQualityURP(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_dofHighQualityURP));
|
|
|
|
|
|
SetAutoExposure(m_photoModeValues.m_postFXExposure);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
if (m_depthOfFieldHDRP != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetDOFEnabled(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_dofActive));
|
|
|
|
|
|
SetDOFAutoFocusEnabled(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_autoDOFFocus));
|
|
|
|
|
|
SetDOFModeHDRP(m_photoModeValues.m_dofFocusModeHDRP);
|
|
|
|
|
|
SetDOFQualityHDRP(m_photoModeValues.m_dofQualityHDRP);
|
|
|
|
|
|
SetDOFFocusDistance(m_photoModeValues.m_dofFocusDistance);
|
|
|
|
|
|
SetDOFAperture(m_photoModeValues.m_cameraAperture);
|
|
|
|
|
|
SetDOFFocalLength(m_photoModeValues.m_cameraFocalLength);
|
|
|
|
|
|
SetHDRPDOFNearStartBlur(m_photoModeValues.m_dofNearBlurStart);
|
|
|
|
|
|
SetHDRPDOFNearEndBlur(m_photoModeValues.m_dofNearBlurEnd);
|
|
|
|
|
|
SetHDRPDOFFarStartBlur(m_photoModeValues.m_dofFarBlurStart);
|
|
|
|
|
|
SetHDRPDOFFarEndBlur(m_photoModeValues.m_dofFarBlurEnd);
|
|
|
|
|
|
SetAutoExposure(m_photoModeValues.m_postFXExposure);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_transformSettings.m_terrain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_activeTerrain != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetTerrainDrawInstanced(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_drawInstanced));
|
|
|
|
|
|
SetTerrainDetailDensity(m_photoModeValues.m_terrainDetailDensity);
|
|
|
|
|
|
SetTerrainDetailDistance(m_photoModeValues.m_terrainDetailDistance);
|
|
|
|
|
|
SetTerrainHeightResolution(m_photoModeValues.m_terrainPixelError);
|
|
|
|
|
|
SetTerrainTextureDistance(m_photoModeValues.m_terrainBasemapDistance);
|
|
|
|
|
|
|
|
|
|
|
|
#if FLORA_PRESENT
|
|
|
|
|
|
if (m_detailManager != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
//SetGlobalGrassDensity(m_photoModeValues.m_globalGrassDensity);
|
|
|
|
|
|
//SetGlobalGrassDistance(m_photoModeValues.m_globalGrassDistance);
|
|
|
|
|
|
//SetGlobalCameraCellDistance(m_photoModeValues.m_cameraCellDistance);
|
|
|
|
|
|
//SetGlobalCameraCellSubdivision(m_photoModeValues.m_cameraCellSubdivision);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_transformSettings.m_lighting != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_pwWeatherPresent)
|
|
|
|
|
|
{
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
SetAdditionalLinearFog(m_photoModeValues.m_gaiaAdditionalLinearFog);
|
|
|
|
|
|
SetAdditionalExponentialFog(m_photoModeValues.m_gaiaAdditionalExponentialFog);
|
|
|
|
|
|
SetGaiaSunAngle(m_photoModeValues.m_sunRotation);
|
|
|
|
|
|
SetGaiaTime(m_photoModeValues.m_gaiaTime);
|
|
|
|
|
|
SetNewColorPickerRefs(m_photoModeValues.m_fogColor, m_gaiaFogColor.m_colorPreviewButton, false);
|
|
|
|
|
|
SetGaiaTimeOfDayEnabled(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_gaiaTimeOfDayEnabled));
|
|
|
|
|
|
SetGaiaTimeScale(m_photoModeValues.m_gaiaTimeScale);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_mainSunLight != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaSunAngle(m_photoModeValues.m_sunRotation);
|
|
|
|
|
|
SetGaiaSunPitch(m_photoModeValues.m_sunPitch);
|
|
|
|
|
|
SetGaiaSunIntensity(m_photoModeValues.m_sunIntensity);
|
|
|
|
|
|
UpdateSunColor();
|
|
|
|
|
|
if (!m_hdrpTimeOfDay)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaSunOverride(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_sunOverride));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
if (m_hdrpTimeOfDay)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaTime(m_photoModeValues.m_gaiaTime);
|
|
|
|
|
|
SetGaiaTimeOfDayEnabled(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_gaiaTimeOfDayEnabled));
|
|
|
|
|
|
SetGaiaTimeScale(m_photoModeValues.m_gaiaTimeScale);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
UpdateAmbientSkyColor();
|
|
|
|
|
|
UpdateAmbientEquaotrColor();
|
|
|
|
|
|
UpdateAmbientGroundColor();
|
|
|
|
|
|
SetAmbientIntensity(m_photoModeValues.m_ambientIntensity);
|
|
|
|
|
|
if (m_unitySkyboxPresent)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaSkyboxRotation(m_photoModeValues.m_skyboxRotation);
|
|
|
|
|
|
SetGaiaSkyboxExposure(m_photoModeValues.m_skyboxExposure);
|
|
|
|
|
|
SetGaiaFogEnd(m_photoModeValues.m_fogEnd);
|
|
|
|
|
|
SetNewColorPickerRefs(m_photoModeValues.m_fogColor, m_gaiaFogColor.m_colorPreviewButton, false);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaSkyboxRotation(m_photoModeValues.m_skyboxRotation);
|
|
|
|
|
|
SetGaiaSkyboxExposure(m_photoModeValues.m_skyboxExposure);
|
|
|
|
|
|
UpdateSkyboxTint();
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
SetGaiaSkyboxOverride(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_skyboxOverride));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
SetGaiaFogMode((int)m_photoModeValues.m_fogMode);
|
|
|
|
|
|
if (m_gaiaFogColor != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetNewColorPickerRefs(m_photoModeValues.m_fogColor, m_gaiaFogColor.m_colorPreviewButton, false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
SetGaiaFogStart(m_photoModeValues.m_fogStart);
|
|
|
|
|
|
SetGaiaFogEnd(m_photoModeValues.m_fogEnd);
|
|
|
|
|
|
SetGaiaFogDensity(m_photoModeValues.m_fogDensity);
|
|
|
|
|
|
SetGaiaFogOverride(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_fogOverride));
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
switch (m_renderPipeline)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GaiaConstants.EnvironmentRenderer.HighDefinition:
|
|
|
|
|
|
{
|
|
|
|
|
|
SetDensityVolumeEffectType(m_photoModeValues.m_densityVolumeEffectType);
|
|
|
|
|
|
SetDensityVolumeTilingResolution(m_photoModeValues.m_densityVolumeEffectType);
|
|
|
|
|
|
SetDensityVolumeFogDistance(m_photoModeValues.m_densityVolumeFogDistance);
|
|
|
|
|
|
UpdateDensityVolumeAlbedoColor();
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
SetOverrideDensityVolume(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_overrideDensityVolume));
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
UpdateFogSettings();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
SetGaiaWindDirection(m_photoModeValues.m_gaiaWindDirection);
|
|
|
|
|
|
SetGaiaWindSpeed(m_photoModeValues.m_gaiaWindSpeed);
|
|
|
|
|
|
SetWindOverride(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_gaiaWindSettingsOverride));
|
|
|
|
|
|
#if GAIA_PRO_PRESENT
|
|
|
|
|
|
if (m_streamingSettingsArea != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaLoadRange(m_photoModeValues.m_gaiaLoadRange);
|
|
|
|
|
|
SetGaiaImpostorRange(m_photoModeValues.m_gaiaImpostorRange);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (m_transformSettings.m_lighting != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_weather != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetGaiaWeatherEnabled(PhotoModeUtils.ConvertBoolToInt(m_photoModeValues.m_gaiaWeatherEnabled));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Function used to reset all input fields so that the string value can be updated
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void SetAllInputFieldsToTrue()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (PhotoMode.CurrentRuntimeUIElements.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (PhotoModeUIHelper runtimeUI in CurrentRuntimeUIElements)
|
|
|
|
|
|
{
|
|
|
|
|
|
PhotoModeUtils.SetIsUsingSliderValue(runtimeUI);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Color Picker Functions
|
|
|
|
|
|
|
|
|
|
|
|
public void OpenColorPickerFog()
|
|
|
|
|
|
{
|
|
|
|
|
|
OpenColorPicker(m_gaiaFogColor, m_photoModeValues.m_fogColor, ColorPickerReferenceMode.FogColor, UpdateFogSettings);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OpenColorPickerSunColor()
|
|
|
|
|
|
{
|
|
|
|
|
|
OpenColorPicker(m_gaiaSunColor, m_photoModeValues.m_sunColor, ColorPickerReferenceMode.SunColor, UpdateSunColor);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OpenColorPickerSkyboxTint()
|
|
|
|
|
|
{
|
|
|
|
|
|
OpenColorPicker(m_gaiaSkyboxTint, m_photoModeValues.m_skyboxTint, ColorPickerReferenceMode.SkyboxTintColor, UpdateSkyboxTint);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OpenColorPickerDensityAlbedo()
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
OpenColorPicker(m_densityVolumeAlbedoColor, m_photoModeValues.m_densityVolumeAlbedoColor, ColorPickerReferenceMode.DensityAlbedoColor, UpdateDensityVolumeAlbedoColor);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OpenColorPickerUnderwaterFogColor()
|
|
|
|
|
|
{
|
|
|
|
|
|
OpenColorPicker(m_gaiaUnderwaterFogColor, m_photoModeValues.m_gaiaUnderwaterFogColor, ColorPickerReferenceMode.UnderwaterFogColor, UpdateUnderwaterFogColor);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OpenColorPickerAmbientSkyColor()
|
|
|
|
|
|
{
|
|
|
|
|
|
OpenColorPicker(m_ambientSkyColor, m_photoModeValues.m_ambientSkyColor, ColorPickerReferenceMode.AmbientSkyColor, UpdateAmbientSkyColor, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OpenColorPickerAmbientEquatorColor()
|
|
|
|
|
|
{
|
|
|
|
|
|
OpenColorPicker(m_ambientEquatorColor, m_photoModeValues.m_ambientEquatorColor, ColorPickerReferenceMode.AmbientEquatorColor, UpdateAmbientEquaotrColor, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void OpenColorPickerAmbientGroundColor()
|
|
|
|
|
|
{
|
|
|
|
|
|
OpenColorPicker(m_ambientGroundColor, m_photoModeValues.m_ambientGroundColor, ColorPickerReferenceMode.AmbientGroundColor, UpdateAmbientGroundColor, true);
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetFogColor()
|
|
|
|
|
|
{
|
|
|
|
|
|
UpdateFogSettings();
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetNewColorPickerRefs(Color color, Button currentColorImage, bool colorPickerEnabled, bool applyHDR = false)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_colorPicker.RefColor(ref color, ref currentColorImage, applyHDR);
|
|
|
|
|
|
m_updateColorPickerRef = colorPickerEnabled;
|
|
|
|
|
|
}
|
|
|
|
|
|
private void OpenColorPicker(PhotoModeUIHelper runtimeUI, Color colorValue, ColorPickerReferenceMode mode, UnityAction onChanged, bool hdr = false)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (runtimeUI != null && m_colorPicker != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
runtimeUI.SetColorPreviewImage(colorValue, hdr);
|
|
|
|
|
|
SetColorPickerVisable(true);
|
|
|
|
|
|
m_colorPicker.SetColorValue(colorValue, hdr);
|
|
|
|
|
|
SetNewColorPickerRefs(colorValue, runtimeUI.m_colorPreviewButton, true);
|
|
|
|
|
|
m_colorPicker.SetLastColorValue(colorValue);
|
|
|
|
|
|
m_colorPicker.SetCurrentFocusedName(runtimeUI.name);
|
|
|
|
|
|
m_colorPicker.Refresh();
|
|
|
|
|
|
m_colorPickerRefMode = mode;
|
|
|
|
|
|
m_colorPicker.UpdateOnChangedMethod(onChanged);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Shows or hides the color picker
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="value"></param>
|
|
|
|
|
|
private void SetColorPickerVisable(bool value)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_colorPicker != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (value)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_colorPicker.gameObject.SetActive(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
m_colorPicker.gameObject.SetActive(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Processes color picker updates
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public void UpdateColorPicker()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_updateColorPickerRef)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (m_colorPickerRefMode)
|
|
|
|
|
|
{
|
|
|
|
|
|
case ColorPickerReferenceMode.FogColor:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_colorPicker.RefColor(ref m_photoModeValues.m_fogColor, ref m_gaiaFogColor.m_colorPreviewButton, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case ColorPickerReferenceMode.SunColor:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_colorPicker.RefColor(ref m_photoModeValues.m_sunColor, ref m_gaiaSunColor.m_colorPreviewButton, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case ColorPickerReferenceMode.SkyboxTintColor:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_colorPicker.RefColor(ref m_photoModeValues.m_skyboxTint, ref m_gaiaSkyboxTint.m_colorPreviewButton, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case ColorPickerReferenceMode.DensityAlbedoColor:
|
|
|
|
|
|
{
|
|
|
|
|
|
#if HDPipeline
|
|
|
|
|
|
m_colorPicker.RefColor(ref m_photoModeValues.m_densityVolumeAlbedoColor, ref m_densityVolumeAlbedoColor.m_colorPreviewButton, true);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case ColorPickerReferenceMode.UnderwaterFogColor:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_colorPicker.RefColor(ref m_photoModeValues.m_gaiaUnderwaterFogColor, ref m_gaiaUnderwaterFogColor.m_colorPreviewButton, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case ColorPickerReferenceMode.AmbientSkyColor:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_colorPicker.RefColor(ref m_photoModeValues.m_ambientSkyColor, ref m_ambientSkyColor.m_colorPreviewButton, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case ColorPickerReferenceMode.AmbientEquatorColor:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_colorPicker.RefColor(ref m_photoModeValues.m_ambientEquatorColor, ref m_ambientEquatorColor.m_colorPreviewButton, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
case ColorPickerReferenceMode.AmbientGroundColor:
|
|
|
|
|
|
{
|
|
|
|
|
|
m_colorPicker.RefColor(ref m_photoModeValues.m_ambientGroundColor, ref m_ambientGroundColor.m_colorPreviewButton, true);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|