コード例 #1
0
        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;
        }
コード例 #2
0
ファイル: SkyRenderer.cs プロジェクト: zmz0381/simulator
        /// <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);
        }
コード例 #3
0
        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>();
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        protected float GetExposure(SkySettings skySettings, DebugDisplaySettings debugSettings)
        {
            float debugExposure = 0.0f;

            if (debugSettings != null && debugSettings.DebugNeedsExposure())
            {
                debugExposure = debugSettings.lightingDebugSettings.debugExposure;
            }
            return(skySettings.exposure + debugExposure);
        }
コード例 #6
0
        /// <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)));
        }
コード例 #7
0
ファイル: VRtistMixer.cs プロジェクト: ubisoft/vrtist
        public static void SetSkyColors(Color topColor, Color middleColor, Color bottomColor)
        {
            SkySettings skySettings = new SkySettings
            {
                topColor    = topColor,
                middleColor = middleColor,
                bottomColor = bottomColor
            };

            GlobalState.Instance.SkySettings = skySettings;
        }
コード例 #8
0
        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;
        }
コード例 #9
0
ファイル: SkyRenderer.cs プロジェクト: Vollga/Vrij_III_Bakcup
        /// <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);
        }
コード例 #10
0
 public void SetSky(SkySettings sky)
 {
     MixerClient.Instance.SendEvent <SkySettings>(MessageType.Sky, sky);
 }
コード例 #11
0
        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);
        }
コード例 #12
0
 /// <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());
 }
コード例 #13
0
 /// <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);
 }
コード例 #14
0
 /// <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)
 {
 }
コード例 #15
0
        public void SendSky(SkySettings skyInfo)
        {
            NetCommand command = MixerUtils.BuildSkyCommand(skyInfo);

            AddCommand(command);
        }