/// <summary>
        /// This hook allows HDRP to apply some changes before the LookDev's Camera render.
        /// Should mainly be used for view isolation.
        /// </summary>
        /// <param name="SRI">The StageRuntimeInterface allowing to communicate with the LookDev</param>
        void IDataProvider.OnBeginRendering(StageRuntimeInterface SRI)
        {
            LookDevDataForHDRP data = (LookDevDataForHDRP)SRI.SRPData;
#if UNITY_EDITOR
            // The default volume can change in the HDRP asset so if it does we need to re-instantiate it.
            if (UpdateVolumeProfile(data.volume, out var visualEnv, out var sky))
            {
                data.sky = sky;
                data.visualEnvironment = visualEnv;
                SRI.SRPData = data;
            }
#endif
            data.volume.enabled = true;
        }
 /// <summary>
 /// This hook allows HDRP to provide a shadow mask in order for LookDev to perform a self shadow composition.
 /// </summary>
 /// <param name="output">The created shadow mask</param>
 /// <param name="SRI">The StageRuntimeInterface allowing to communicate with the LookDev</param>
 void IDataProvider.GetShadowMask(ref RenderTexture output, StageRuntimeInterface SRI)
 {
     LookDevDataForHDRP data = (LookDevDataForHDRP)SRI.SRPData;
     Color oldBackgroundColor = data.additionalCameraData.backgroundColorHDR;
     var oldClearMode = data.additionalCameraData.clearColorMode;
     data.additionalCameraData.backgroundColorHDR = Color.white;
     data.additionalCameraData.clearColorMode = HDAdditionalCameraData.ClearColorMode.Color;
     data.additionalLightData.intensity = 1f;
     debugDisplaySettings.SetShadowDebugMode(ShadowMapDebugMode.SingleShadow);
     SRI.camera.targetTexture = output;
     SRI.camera.Render();
     debugDisplaySettings.SetShadowDebugMode(ShadowMapDebugMode.None);
     data.additionalLightData.intensity = 0f;
     data.additionalCameraData.backgroundColorHDR = oldBackgroundColor;
     data.additionalCameraData.clearColorMode = oldClearMode;
 }
 /// <summary>
 /// This hook allows HDRP to apply the sky as it is requested by the LookDev
 /// </summary>
 /// <param name="camera">The Camera rendering in the LookDev</param>
 /// <param name="sky">The requested Sky to use</param>
 /// <param name="SRI">The StageRuntimeInterface allowing to communicate with the LookDev</param>
 void IDataProvider.UpdateSky(Camera camera, Sky sky, StageRuntimeInterface SRI)
 {
     LookDevDataForHDRP data = (LookDevDataForHDRP)SRI.SRPData;
     if (sky.cubemap == null)
     {
         data.visualEnvironment.skyType.Override((int)0); //Skytype.None do not really exist
         data.additionalCameraData.clearColorMode = HDAdditionalCameraData.ClearColorMode.Color;
     }
     else
     {
         data.visualEnvironment.skyType.Override((int)SkyType.HDRI);
         data.sky.hdriSky.Override(sky.cubemap);
         data.sky.rotation.Override(sky.longitudeOffset);
         data.additionalCameraData.clearColorMode = HDAdditionalCameraData.ClearColorMode.Sky;
     }
 }
Exemplo n.º 4
0
        void IDataProvider.UpdateSky(Camera camera, Cubemap skybox, StageRuntimeInterface SRI)
        {
            //[TODO: add rotation and intensity]
            LookDevDataForHDRP data = (LookDevDataForHDRP)SRI.SRPData;

            if (skybox == null)
            {
                data.visualEnvironment.skyType.Override((int)0); //Skytype.None do not really exist
                data.additionalCameraData.clearColorMode = HDAdditionalCameraData.ClearColorMode.Color;
            }
            else
            {
                data.visualEnvironment.skyType.Override((int)SkyType.HDRISky);
                data.sky.hdriSky.Override(skybox);
                data.additionalCameraData.clearColorMode = HDAdditionalCameraData.ClearColorMode.Sky;
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// The HDRP implementation for the callback that the look dev raises to process any necessary cleanup.
        /// </summary>
        /// <param name="SRI">Access element of the LookDev's scene</param>
        void IDataProvider.Cleanup(StageRuntimeInterface SRI)
        {
            LookDevDataForHDRP data = (LookDevDataForHDRP)SRI.SRPData;

            CoreUtils.Destroy(data.volume.sharedProfile);
        }
Exemplo n.º 6
0
        /// <summary>
        /// This hook allows HDRP to apply some changes after the LookDev's Camera render.
        /// Should mainly be used for view isolation.
        /// </summary>
        /// <param name="SRI">The StageRuntimeInterface allowing to communicate with the LookDev</param>
        void IDataProvider.OnEndRendering(StageRuntimeInterface SRI)
        {
            LookDevDataForHDRP data = (LookDevDataForHDRP)SRI.SRPData;

            data.volume.enabled = false;
        }