Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions com.unity.render-pipelines.high-definition/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Volume parameter of type Cubemap can now accept Cubemap render textures and custom render textures.
- Removed the superior clamping value for the recursive rendering max ray length.
- Removed the superior clamping value for the ray tracing light cluster size.
- Now reflection probes cannot have SSAO, SSGI, SSR, ray tracing effects or volumetric reprojection.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to add this limitation in the documentation.


## [10.3.0] - 2020-12-01

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,4 @@ The properties visible in the Inspector change depending on whether or not you e
### Screen-space ambient occlusion

A screen-space effect only processes what is on the screen at a given point in time. This means that objects outside of the field of view cannot visually occlude objects in the view. You can sometimes see this on the edges of the screen.
When rendering [Reflection Probes](Reflection-Probe.md) screen space ambient occlusion is not supported.
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,4 @@ The properties visible in the Inspector change depending on whether or not you e
### Ray-traced global illumination

Currently, ray tracing in HDRP does not support [decals](decal.md). This means that ray-traced global illumination does not affect decals in your Scene.
When rendering [Reflection Probes](Reflection-Probe.md) screen space global illumination is not supported.
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ HDRP ray tracing in Unity 2020.2 has the following limitations:
- Does not support MSAA.
- For renderers that have [LODs](https://docs.unity3d.com/2019.3/Documentation/Manual/LevelOfDetail.html), the ray tracing acceleration structure only includes the highest level LOD and ignores the lower LODs.
- Does not support [Graphics.DrawMesh](https://docs.unity3d.com/ScriptReference/Graphics.DrawMesh.html).
- Ray tracing is not supported when rendering [Reflection Probes](Reflection-Probe.md).

## Unsupported features of path tracing

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -737,6 +737,7 @@ internal static void Sanitize(ref FrameSettings sanitizedFrameSettings, Camera c
bool reflectionPlanar = GeometryUtils.IsProjectionMatrixOblique(camera.projectionMatrix);
bool preview = HDUtils.IsRegularPreviewCamera(camera);
bool sceneViewFog = CoreUtils.IsSceneViewFogEnabled(camera);
bool temporalAccumulationAllowed = (!reflection || (reflection && reflectionPlanar));

switch (renderPipelineSettings.supportedLitShaderMode)
{
Expand All @@ -756,27 +757,29 @@ internal static void Sanitize(ref FrameSettings sanitizedFrameSettings, Camera c
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.ContactShadows] &= !preview;
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.ScreenSpaceShadows] &= renderPipelineSettings.hdShadowInitParams.supportScreenSpaceShadows && sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.OpaqueObjects];
bool pipelineSupportsRayTracing = HDRenderPipeline.GatherRayTracingSupport(renderPipelineSettings);
bool rayTracingActive = sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.RayTracing] &= pipelineSupportsRayTracing && !preview;
// Ray tracing effects are not allowed on reflection probes due to the accumulation process.
bool rayTracingActive = sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.RayTracing] &= pipelineSupportsRayTracing && !preview && temporalAccumulationAllowed;

//MSAA only supported in forward
// TODO: The work will be implemented piecemeal to support all passes
bool msaa = sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.MSAA] &= renderPipelineSettings.supportMSAA && sanitizedFrameSettings.litShaderMode == LitShaderMode.Forward && !pipelineSupportsRayTracing;
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.AlphaToMask] &= msaa;

// No recursive reflections
bool ssr = sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.SSR] &= renderPipelineSettings.supportSSR && !msaa && !preview;
bool ssr = sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.SSR] &= renderPipelineSettings.supportSSR && !msaa && !preview && temporalAccumulationAllowed;
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.TransparentSSR] &= ssr && renderPipelineSettings.supportSSRTransparent && sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.TransparentObjects];
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.Refraction] &= !preview;
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.SSAO] &= renderPipelineSettings.supportSSAO && !preview && sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.OpaqueObjects];
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.SSGI] &= renderPipelineSettings.supportSSGI && !preview && sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.OpaqueObjects];
// Because the camera is shared between the faces of the reflection probes, we cannot allow effects that rely on the accumulation process
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.SSAO] &= renderPipelineSettings.supportSSAO && !preview && sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.OpaqueObjects] && temporalAccumulationAllowed;
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.SSGI] &= renderPipelineSettings.supportSSGI && !preview && sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.OpaqueObjects] && temporalAccumulationAllowed;
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.SubsurfaceScattering] &= renderPipelineSettings.supportSubsurfaceScattering;

// We must take care of the scene view fog flags in the editor
bool atmosphericScattering = sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.AtmosphericScattering] &= sceneViewFog && !preview;

// Volumetric are disabled if there is no atmospheric scattering
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.Volumetrics] &= renderPipelineSettings.supportVolumetrics && atmosphericScattering; //&& !preview induced by atmospheric scattering
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.ReprojectionForVolumetrics] &= !preview;
sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.ReprojectionForVolumetrics] &= !preview && temporalAccumulationAllowed;

sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.LightLayers] &= renderPipelineSettings.supportLightLayers && !preview;
// We allow the user to enable exposure control on planar reflections, but not on reflection probes.
Expand Down