public bool enableSSAO = true ;
public bool enableSubsurfaceScattering = true ;
public bool enableTransmission = true ; // Caution: this is only for debug, it doesn't save the cost of Transmission execution
public bool enableAtmosphericScattering = true ;
public bool enableVolumetric = true ;
// Setup by system
public bool enableMotionVectors = true ; // Enable/disable whole motion vectors pass (Camera + Object).
public bool enableObjectMotionVectors = true ;
public bool enableDBuffer = true ;
public bool enableAtmosphericScattering = true ;
public bool enableRoughRefraction = true ; // Depends on DepthPyramid - If not enable, just do a copy of the scene color (?) - how to disable rough refraction ?
public bool enableTransparentPostpass = true ;
public bool enableDistortion = true ;
frameSettings . enableSSAO = this . enableSSAO ;
frameSettings . enableSubsurfaceScattering = this . enableSubsurfaceScattering ;
frameSettings . enableTransmission = this . enableTransmission ;
frameSettings . enableAtmosphericScattering = this . enableAtmosphericScattering ;
frameSettings . enableVolumetric = this . enableVolumetric ;
frameSettings . diffuseGlobalDimmer = this . diffuseGlobalDimmer ;
frameSettings . specularGlobalDimmer = this . specularGlobalDimmer ;
frameSettings . enableMotionVectors = this . enableMotionVectors ;
frameSettings . enableObjectMotionVectors = this . enableObjectMotionVectors ;
frameSettings . enableDBuffer = this . enableDBuffer ;
frameSettings . enableAtmosphericScattering = this . enableAtmosphericScattering ;
frameSettings . enableRoughRefraction = this . enableRoughRefraction ;
frameSettings . enableTransparentPostpass = this . enableTransparentPostpass ;
frameSettings . enableDistortion = this . enableDistortion ;
aggregate . enableSSAO = srcFrameSettings . enableSSAO & & renderPipelineSettings . supportSSAO ;
aggregate . enableSubsurfaceScattering = camera . cameraType ! = CameraType . Reflection & & srcFrameSettings . enableSubsurfaceScattering & & renderPipelineSettings . supportSubsurfaceScattering ;
aggregate . enableTransmission = srcFrameSettings . enableTransmission ;
aggregate . enableVolumetric = srcFrameSettings . enableVolumetric & & renderPipelineSettings . supportVolumetric ;
aggregate . enableAtmosphericScattering = srcFrameSettings . enableAtmosphericScattering ;
// We must take care of the scene view fog flags in the editor
if ( ! CoreUtils . IsSceneViewFogEnabled ( camera ) )
aggregate . enableAtmosphericScattering = false ;
// Volumetric are disabled if there is no atmospheric scattering
aggregate . enableVolumetric = srcFrameSettings . enableVolumetric & & renderPipelineSettings . supportVolumetric & & aggregate . enableAtmosphericScattering ;
// TODO: Add support of volumetric in planar reflection
if ( camera . cameraType = = CameraType . Reflection )
aggregate . enableMotionVectors = camera . cameraType ! = CameraType . Reflection & & srcFrameSettings . enableMotionVectors & & renderPipelineSettings . supportMotionVectors ;
aggregate . enableObjectMotionVectors = camera . cameraType ! = CameraType . Reflection & & srcFrameSettings . enableObjectMotionVectors & & renderPipelineSettings . supportMotionVectors ;
aggregate . enableDBuffer = srcFrameSettings . enableDBuffer & & renderPipelineSettings . supportDBuffer ;
aggregate . enableAtmosphericScattering = srcFrameSettings . enableAtmosphericScattering ;
// We must take care of the scene view fog flags in the editor
if ( ! CoreUtils . IsSceneViewFogEnabled ( camera ) )
aggregate . enableAtmosphericScattering = false ;
aggregate . enableRoughRefraction = srcFrameSettings . enableRoughRefraction ;
aggregate . enableTransparentPostpass = srcFrameSettings . enableTransparentPostpass ;
aggregate . enableDistortion = camera . cameraType ! = CameraType . Reflection & & srcFrameSettings . enableDistortion ;
aggregate . ConfigureMSAADependentSettings ( ) ;
aggregate . ConfigureStereoDependentSettings ( ) ;
if ( camera . cameraType = = CameraType . Preview )
// Disable various option for the preview except if we are a Camera Editor preview
if ( HDUtils . IsRegularPreviewCamera ( camera ) )
// remove undesired feature in preview
aggregate . enableAtmosphericScattering = false ;
aggregate . enableVolumetric = false ;
aggregate . enableAtmosphericScattering = false ;
aggregate . enableVolumetric = false ;
}
LightLoopSettings . InitializeLightLoopSettings ( camera , aggregate , renderPipelineSettings , srcFrameSettings , ref aggregate . lightLoopSettings ) ;
new DebugUI . BoolField { displayName = "Enable Motion Vectors" , getter = ( ) = > frameSettings . enableMotionVectors , setter = value = > frameSettings . enableMotionVectors = value } ,
new DebugUI . BoolField { displayName = "Enable Object Motion Vectors" , getter = ( ) = > frameSettings . enableObjectMotionVectors , setter = value = > frameSettings . enableObjectMotionVectors = value } ,
new DebugUI . BoolField { displayName = "Enable DBuffer" , getter = ( ) = > frameSettings . enableDBuffer , setter = value = > frameSettings . enableDBuffer = value } ,
new DebugUI . BoolField { displayName = "Enable Atmospheric Scattering" , getter = ( ) = > frameSettings . enableAtmosphericScattering , setter = value = > frameSettings . enableAtmosphericScattering = value } ,
new DebugUI . BoolField { displayName = "Enable Rough Refraction" , getter = ( ) = > frameSettings . enableRoughRefraction , setter = value = > frameSettings . enableRoughRefraction = value } ,
new DebugUI . BoolField { displayName = "Enable Distortion" , getter = ( ) = > frameSettings . enableDistortion , setter = value = > frameSettings . enableDistortion = value } ,
new DebugUI . BoolField { displayName = "Enable Postprocess" , getter = ( ) = > frameSettings . enablePostprocess , setter = value = > frameSettings . enablePostprocess = value } ,
new DebugUI . BoolField { displayName = "Enable Shadows" , getter = ( ) = > frameSettings . enableShadow , setter = value = > frameSettings . enableShadow = value } ,
new DebugUI . BoolField { displayName = "Enable Contact Shadows" , getter = ( ) = > frameSettings . enableContactShadows , setter = value = > frameSettings . enableContactShadows = value } ,
new DebugUI . BoolField { displayName = "Enable ShadowMask" , getter = ( ) = > frameSettings . enableShadowMask , setter = value = > frameSettings . enableShadowMask = value } ,
new DebugUI . BoolField { displayName = "Enable Atmospheric Scattering" , getter = ( ) = > frameSettings . enableAtmosphericScattering , setter = value = > frameSettings . enableAtmosphericScattering = value } ,
new DebugUI . BoolField { displayName = " Enable volumetric" , getter = ( ) = > frameSettings . enableVolumetric , setter = value = > frameSettings . enableVolumetric = value } ,
}
}
} ) ;