void IDataProvider.FirstInitScene(StageRuntimeInterface SRI)
        {
            Camera camera = SRI.camera;

            camera.allowHDR = true;

            var additionalData = camera.gameObject.AddComponent <HDAdditionalCameraData>();

            additionalData.clearColorMode       = HDAdditionalCameraData.ClearColorMode.Color;
            additionalData.clearDepth           = true;
            additionalData.backgroundColorHDR   = camera.backgroundColor;
            additionalData.volumeAnchorOverride = camera.transform;
            additionalData.volumeLayerMask      = 1 << 31; //31 is the culling layer used in LookDev

            GameObject volumeGO = SRI.AddGameObject(persistent: true);

            volumeGO.name = "SkyManagementVolume";
            Volume volume = volumeGO.AddComponent <Volume>();

            volume.isGlobal = true;
            volume.priority = float.MaxValue;
            VolumeProfile profile = ScriptableObject.CreateInstance <VolumeProfile>();

            volume.profile = profile;
            VisualEnvironment visualEnvironment = profile.Add <VisualEnvironment>();
            HDRISky           sky = profile.Add <HDRISky>();

            SRI.SRPData = new LookDevDataForHDRP()
            {
                additionalCameraData = additionalData,
                visualEnvironment    = visualEnvironment,
                sky    = sky,
                volume = volume
            };


            //temp for debug: show component in scene hierarchy
            //UnityEngine.SceneManagement.SceneManager.MoveGameObjectToScene(camera.gameObject, GameObject.Find("Main Camera").scene);
            //camera.gameObject.hideFlags = HideFlags.None;
            //UnityEngine.SceneManagement.SceneManager.MoveGameObjectToScene(volumeGO, GameObject.Find("Main Camera").scene);
            //volumeGO.hideFlags = HideFlags.None;
        }
Example #2
0
 public HDRISkyRenderer(HDRISky hdriSkyParams)
 {
     m_HdriSkyParams = hdriSkyParams;
     m_PropertyBlock = new MaterialPropertyBlock();
 }