static void CreateSceneSettingsGameObject(MenuCommand menuCommand) { var parent = menuCommand.context as GameObject; var settings = CoreEditorUtils.CreateGameObject(parent, "Sky and Fog Volume"); GameObjectUtility.SetParentAndAlign(settings, menuCommand.context as GameObject); Undo.RegisterCreatedObjectUndo(settings, "Create " + settings.name); Selection.activeObject = settings; var profile = VolumeProfileFactory.CreateVolumeProfile(settings.scene, "Sky and Fog Settings"); var visualEnv = VolumeProfileFactory.CreateVolumeComponent <VisualEnvironment>(profile, true, false); visualEnv.skyType.value = SkySettings.GetUniqueID <PhysicallyBasedSky>(); visualEnv.skyAmbientMode.overrideState = false; VolumeProfileFactory.CreateVolumeComponent <PhysicallyBasedSky>(profile, false, false); var fog = VolumeProfileFactory.CreateVolumeComponent <Fog>(profile, false, true); fog.enabled.Override(true); fog.enableVolumetricFog.Override(true); var volume = settings.AddComponent <Volume>(); volume.isGlobal = true; volume.sharedProfile = profile; }
/// <summary> /// Returns exposure setting for the provided SkySettings. This will also take debug exposure into accound /// </summary> /// <param name="skySettings">SkySettings for which exposure is required.</param> /// <param name="debugSettings">Current debug display settings</param> /// <returns>Returns SkySetting exposure.</returns> protected static float GetSkyIntensity(SkySettings skySettings, DebugDisplaySettings debugSettings) { float skyIntensity = 1.0f; if (debugSettings != null && debugSettings.DebugNeedsExposure()) { skyIntensity *= ColorUtils.ConvertEV100ToExposure(-debugSettings.data.lightingDebugSettings.debugExposure); } switch (skySettings.skyIntensityMode.value) { case SkyIntensityMode.Exposure: skyIntensity *= ColorUtils.ConvertEV100ToExposure(-skySettings.exposure.value); break; case SkyIntensityMode.Multiplier: skyIntensity *= skySettings.multiplier.value; break; case SkyIntensityMode.Lux: skyIntensity *= skySettings.desiredLuxValue.value / skySettings.upperHemisphereLuxValue.value; break; } return(skyIntensity); }
static void CreateSceneSettingsGameObject(MenuCommand menuCommand) { var parent = menuCommand.context as GameObject; var sceneSettings = CoreEditorUtils.CreateGameObject(parent, "Scene Settings"); GameObjectUtility.SetParentAndAlign(sceneSettings, menuCommand.context as GameObject); Undo.RegisterCreatedObjectUndo(sceneSettings, "Create " + sceneSettings.name); Selection.activeObject = sceneSettings; var profile = VolumeProfileFactory.CreateVolumeProfile(sceneSettings.scene, "Scene Settings"); VolumeProfileFactory.CreateVolumeComponent <HDShadowSettings>(profile, true, false); var visualEnv = VolumeProfileFactory.CreateVolumeComponent <VisualEnvironment>(profile, true, false); visualEnv.skyType.value = SkySettings.GetUniqueID <ProceduralSky>(); visualEnv.fogType.value = FogType.Exponential; VolumeProfileFactory.CreateVolumeComponent <ProceduralSky>(profile, true, false); VolumeProfileFactory.CreateVolumeComponent <ExponentialFog>(profile, true, true); var volume = sceneSettings.AddComponent <Volume>(); volume.isGlobal = true; volume.sharedProfile = profile; var bakingSky = sceneSettings.AddComponent <BakingSky>(); bakingSky.profile = volume.sharedProfile; bakingSky.bakingSkyUniqueID = SkySettings.GetUniqueID <ProceduralSky>(); }
public AFrameNode Create(SkySettings settings) { var node = new AFrameNode("a-sky"); node.AddAttribute("radius", settings.radius); if (settings.mode == SkySettings.SkyMode.Color) { node.AddAttribute("color", "#" + Three.UnityColorToHexColor(settings.skyColor)); } else if (settings.mode == SkySettings.SkyMode.MainCameraBackground) { var cam = Camera.main; if (cam == null) { Debug.LogError("Camera.main is null, add tag MainCamera"); } node.AddAttribute("color", "#" + Three.UnityColorToHexColor(cam.backgroundColor)); } else if (settings.mode == SkySettings.SkyMode.Texture) { throw new NotImplementedException(); //node.AddAttribute("src", "TODO") } return(node); }
protected float GetExposure(SkySettings skySettings, DebugDisplaySettings debugSettings) { float debugExposure = 0.0f; if (debugSettings != null && debugSettings.DebugNeedsExposure()) { debugExposure = debugSettings.lightingDebugSettings.debugExposure; } return(skySettings.exposure + debugExposure); }
/// <summary> /// Returns exposure setting for the provided SkySettings. This will also take debug exposure into accound /// </summary> /// <param name="skySettings">SkySettings for which exposure is required.</param> /// <param name="debugSettings">Current debug display settings</param> /// <returns>Returns SkySetting exposure.</returns> protected static float GetExposure(SkySettings skySettings, DebugDisplaySettings debugSettings) { float debugExposure = 0.0f; if (debugSettings != null && debugSettings.DebugNeedsExposure()) { debugExposure = debugSettings.data.lightingDebugSettings.debugExposure; } return(ColorUtils.ConvertEV100ToExposure(-(skySettings.exposure.value + debugExposure))); }
public static void SetSkyColors(Color topColor, Color middleColor, Color bottomColor) { SkySettings skySettings = new SkySettings { topColor = topColor, middleColor = middleColor, bottomColor = bottomColor }; GlobalState.Instance.SkySettings = skySettings; }
static void CreateSceneSettingsGameObject(MenuCommand menuCommand) { var parent = menuCommand.context as GameObject; var settings = CoreEditorUtils.CreateGameObject("Sky and Fog Global Volume", parent); var profile = VolumeProfileFactory.CreateVolumeProfile(settings.scene, "Sky and Fog Settings"); var visualEnv = VolumeProfileFactory.CreateVolumeComponent <VisualEnvironment>(profile, true, false); visualEnv.skyType.value = SkySettings.GetUniqueID <PhysicallyBasedSky>(); visualEnv.skyAmbientMode.overrideState = false; VolumeProfileFactory.CreateVolumeComponent <PhysicallyBasedSky>(profile, false, false); var fog = VolumeProfileFactory.CreateVolumeComponent <Fog>(profile, false, true); fog.enabled.Override(true); fog.enableVolumetricFog.Override(true); var volume = settings.AddComponent <Volume>(); volume.isGlobal = true; volume.sharedProfile = profile; }
/// <summary> /// Returns exposure setting for the provided SkySettings. /// </summary> /// <param name="skySettings">SkySettings for which exposure is required.</param> /// <param name="debugSettings">Current debug display settings</param> /// <returns>Returns SkySetting exposure.</returns> protected static float GetSkyIntensity(SkySettings skySettings, DebugDisplaySettings debugSettings) { float skyIntensity = 1.0f; switch (skySettings.skyIntensityMode.value) { case SkyIntensityMode.Exposure: // Note: Here we use EV100 of sky as a multiplier, so it is the opposite of when use with a Camera // because for sky/light, higher EV mean brighter, but for camera higher EV mean darker scene skyIntensity *= ColorUtils.ConvertEV100ToExposure(-skySettings.exposure.value); break; case SkyIntensityMode.Multiplier: skyIntensity *= skySettings.multiplier.value; break; case SkyIntensityMode.Lux: skyIntensity *= skySettings.desiredLuxValue.value / skySettings.upperHemisphereLuxValue.value; break; } return(skyIntensity); }
public void SetSky(SkySettings sky) { MixerClient.Instance.SendEvent <SkySettings>(MessageType.Sky, sky); }
public void FromBytes(byte[] buffer, ref int index) { for (int i = 0; i < 6; i++) { if (buffer[i] != headerBuffer[i]) { throw new Exception("Invalid VRtist file Header"); } } index += 6; fileVersion = Converter.GetInt(buffer, ref index); if (fileVersion > version) { throw new Exception("File version mismatch, please update VRtist"); } int objectsCount = Converter.GetInt(buffer, ref index); for (int i = 0; i < objectsCount; i++) { ObjectData data = new ObjectData(); data.FromBytes(buffer, ref index); objects.Add(data); } int lightsCount = Converter.GetInt(buffer, ref index); for (int i = 0; i < lightsCount; i++) { LightData data = new LightData(); data.FromBytes(buffer, ref index); lights.Add(data); } int camerasCount = Converter.GetInt(buffer, ref index); for (int i = 0; i < camerasCount; i++) { CameraData data = new CameraData(); data.FromBytes(buffer, ref index); cameras.Add(data); } skyData = new SkySettings { topColor = Converter.GetColor(buffer, ref index), middleColor = Converter.GetColor(buffer, ref index), bottomColor = Converter.GetColor(buffer, ref index) }; int animationsCount = Converter.GetInt(buffer, ref index); for (int i = 0; i < animationsCount; i++) { AnimationData data = new AnimationData(); data.FromBytes(buffer, ref index); animations.Add(data); } int rigCount = Converter.GetInt(buffer, ref index); for (int i = 0; i < rigCount; i++) { RigData data = new RigData(); data.FromBytes(buffer, ref index); rigs.Add(data); } fps = Converter.GetFloat(buffer, ref index); startFrame = Converter.GetInt(buffer, ref index); endFrame = Converter.GetInt(buffer, ref index); currentFrame = Converter.GetInt(buffer, ref index); int constraintsCount = Converter.GetInt(buffer, ref index); for (int i = 0; i < constraintsCount; i++) { ConstraintData data = new ConstraintData(); data.FromBytes(buffer, ref index); constraints.Add(data); } int shotsCount = Converter.GetInt(buffer, ref index); for (int i = 0; i < shotsCount; i++) { ShotData data = new ShotData(); data.FromBytes(buffer, ref index); shots.Add(data); } playerData = new PlayerData(); playerData.FromBytes(buffer, ref index); }
/// <summary> /// Returns exposure setting for the provided SkySettings. /// </summary> /// <param name="skySettings">SkySettings for which exposure is required.</param> /// <param name="debugSettings">Current debug display settings</param> /// <returns>Returns SkySetting exposure.</returns> protected static float GetSkyIntensity(SkySettings skySettings, DebugDisplaySettings debugSettings) { return(skySettings.GetIntensityFromSettings()); }
/// <summary> /// Whether the PreRenderSky step is required or not. /// </summary> /// <param name="skySettings">Sky setting for the current sky.</param> /// <returns>True if the sky needs a pre-render pass.</returns> public virtual bool RequiresPreRender(SkySettings skySettings) { return(false); }
/// <summary> /// Setup global parameters for the sky renderer. /// </summary> /// <param name="cmd">Command buffer provided to setup shader constants.</param> /// <param name="sky">Settings for the sky.</param> public virtual void SetGlobalSkyData(CommandBuffer cmd, SkySettings sky) { }
public void SendSky(SkySettings skyInfo) { NetCommand command = MixerUtils.BuildSkyCommand(skyInfo); AddCommand(command); }