Skip to content

Commit

Permalink
[7.x.x] Merge 7.x.x/hd/staging (#512)
Browse files Browse the repository at this point in the history
* [7.x.x Backport] Fixed a weird behavior in the scalable settings drawing when the space becomes tiny (1212045). (#6507)

* - Fixed a weird behavior in the scalable settings drawing when the space becomes tiny (1212045).

* Small fix to avoid text overlapping too much

Co-authored-by: Remi Chapelain <remi.chapelain@unity3d.com>

* Fixed an usage of a a compute buffer not bound (1229964) (#28)

Co-authored-by: Anis <anis@unity3d.com>

* Removed wrongly serialized fields in StaticLightingSky (#6441)

* Fix issues in the post process system with RenderTexture being invalid in some cases. Causing rendering problems. #6480

* Update PostProcessSystem.cs

* Fixed an issue where changing the default volume profile from another inspector would not update the default volume editor. #6493

* Hdrp/docs/glossary f number (#6523)

* Update Glossary.md

* Update Glossary.md

* Clamp probes compression factor to 0 (#19)

* path validation when creating new volume profile (#36)

* [Backport 7.x.x] Fix various leaks in HDRP (#120)

* Fixed a number of leak in HDRP

# Conflicts:
#	com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowManager.cs
#	com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/HDUtils.cs

* Update changelog

* [7.x.x backport] Follow references when deleting unloading unused assets on shader graph save (case 1230996) (#128)

* Follow references when unloading unneeded assets

* changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [7.x.x Backport] Fixed an issue with the specularFGD term being used when the material has a clear coat (lit shader). (#21)

* Fixed an issue with the specularFGD term being used when the material has a clear coat (lit shader).

* update ssr screenshot

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* d Fix MSAA resolve when there is no motion vectors #1

* Fix issues causing planar probes to be broken with multiple cameras in the scene #4

* Pospow and SG triplanar fix #40

* Hdrp/fix/custom pass msaa rendering info #42

* Added disocclusion and ghosting to the glossary (#75)

* Update the scripting API for FrameSettings, FrameSettingsOverrideMask and IBitArray (#110)

* fix switch shader compilation (#111)

* Update SceneViewDrawMode.cs (#118)

* Fix culling of reflection probes that change position #121

* Fix null reference when processing light probe #131

* Fix black screen in XR when HDRP package is present but not used #137

* Fix default volume profile collapse #138

* Fix for white flash happening when changing lighting condition (like teleport) #140

* Added baked GI rp support caveat and made setting shadow filter quality clearer for deferred high. (#145)

* Update AxF-Shader.md (#152)

* Bind missing buffer #159

* [Backport 7.x.x] Diffusion Profile and Material references in HDRP materials are now correctly exported to unity packages. (#179)

* Added external references inside a material to diffusion profiles and materials in order to handle Material export to a package correctly.

# Conflicts:
#	com.unity.render-pipelines.high-definition/Editor/Material/PBR/HDPBRLit.cs

* Update changelog

* Catch and handle NRefactory parser exceptions #6392

* [7.x.x backport] Fix quality settings UI and shadow mask UI #122 (#123)

* Update HDRenderPipeline.cs

* Update HDRenderPipeline.cs

* Update HDRenderPipeline.cs

* Update CHANGELOG.md

* fix typo

* fix typo 2

* Fixed the indirect diffuse texture not being ignored when it should (ray tracing disabled). (#284)

* [7.x.x Backport] Fix pre/post pass sg properties #82 (#85)

* Fix depth pre/post passes not correctly enabled when switching shaders on the material

# Conflicts:
#	com.unity.render-pipelines.high-definition/Editor/Material/Lit/ShaderGraph/HDLitMasterNode.cs
#	com.unity.render-pipelines.high-definition/Editor/Material/Unlit/HDShaderGUI.cs
#	com.unity.render-pipelines.high-definition/Editor/ShaderGraph/HDSubShaderUtilities.cs

* Hide prepass and postpass in the material UI

# Conflicts:
#	com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/SurfaceOptionUIBlock.cs

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fixed a performance issue with stochastic ray traced area shadows. (#306)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [Backport 7.x.x] Updated raytracing async compute warning. (#304)

* Made more explicit the warning about raytracing and asynchronous compute. Also fixed the condition in which it appears.

* Update changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [Backport 7.x.x] Fixed a null ref exception in static sky when the default volume profile is invalid. (#303)

* Fixed a null ref exception in static sky when the default volume profile is invalid.

* Update changelog

* [Backport 7.x.x] Fixed an error about procedural sky being logged by mistake. (#307)

* Fixed an error about procedural sky being logged by mistake.

* Update changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [Backport 7.x.x] Fix flickering lighting in the scene and game view when lookdev is open. (#379)

* Fixed flickering of the game/scene view when lookdev is running.

* Update changelog

* [7.x.x Backport] Fix issue with ambient probe not being correct with OnEnable/OnDemand probes (#317)

* render until ambient probe is ready

* remove comment

* changelog

* [Backport 7.x.x] Fixed some gcalloc in the debug window (#464)

* Fixed some GCAlloc in the debug window

# Conflicts:
#	com.unity.render-pipelines.high-definition/Runtime/Debug/VolumeDebug.cs

* Update changelog

* [Backport 7.x.x] Hdrp/small ui update (#466)

* Removed logic in the UI to disable parameters for contact shadows and fog volume components as it was going against the concept of the volume system.

# Conflicts:
#	com.unity.render-pipelines.high-definition/Editor/Lighting/Shadow/ContactShadowsEditor.cs
#	com.unity.render-pipelines.high-definition/Editor/Sky/AtmosphericScattering/FogEditor.cs

* update changelog

* [Backport 7.x.x] PBR Sky renderer now shares its internal precomputation table between different instances. (#482)

* PBR Sky renderer now shares its internal precomputation table between different instances.

# Conflicts:
#	com.unity.render-pipelines.high-definition/Runtime/Sky/PhysicallyBasedSky/PhysicallyBasedSkyRenderer.cs

* Doc update

* Update changelog

* [Backport 7.x.x] New tooltip for camera background and fixed exposure when switching the background mode. (#480)

* Put more information in Camera background type tooltip and fixed inconsistent exposure behavior when changing bg type.

# Conflicts:
#	com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCamera.cs

* Update changelog

* [Backport 7.x.x] Fixed asset preview being rendered white because of static lighting sky. (#479)

* Fixed an issue where asset preview could be rendered white because of static lighting sky.

Also fixed an issue where static lighting was not updated when removing the static lighting sky profile.

# Conflicts:
#	com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs

* Update changelog

* Changed UI name, tooltip, and doc for maximum decals on screen (#232)

Implements feedback from https://fogbugz.unity3d.com/f/cases/1189618/

* Update Custom-Post-Process.md (#233)

* Update HDRP-Features.md (#235)

* Hdrp/reflection probe scale perf #252

* HD: Switch to 1920x1080 default standalone resolution (#279)

Well, the default is "fullscreen desktop resolution" anyway, so this does not change anything at default settings. But, if user unchecks the "default native fullscreen", then it was going into 1024x768 on Standalone platform. Which was the most popular resolution back in year 2005. In year 2019, the 1920x1080 is the most popular, so make that the default. See also: https://ono.unity3d.com/unity/unity/pull-request/105219/_/desktop/default-res

(moved https://github.cds.internal.unity3d.com/unity/com.unity.template-hd/pull/33 to this new repo)

* Makes sure quaternion is normalized and valid before converting to ma… #331

* Fix cookie srgb #297

* Updated forward and deferred rendering definitions (#350)

* Update Forward-And-Deferred-Rendering.md

* Update Forward-And-Deferred-Rendering.md

* Update Light-Component.md (#357)

* Hd/add layer modification on generated emissive mesh for area light #364

* Update Look-Dev-Environment-Library.md (#365)

* Update Volumetric-Lighting.md (#402)

Fixes https://fogbugz.unity3d.com/f/cases/1238592

* Hd/fix nullref while removing decal component #416

* Fix issue with Uber Post process shader when alpha is enabled #422

* Fix the bug (#430)

* Fix issue causing not all baked reflection probes to be deleted #441

* Updated Decal Projector doc (#477)

Updated Limitations section and added a disclaimer about decal shader stripping.

* Look Dev docs refactor 2 #484

* [7.x.x Backport] Fix issue with corrupted values with Layer Lit when using multiply mode for vertex color (#425)

* Saturate vertex color to avoid negative values.

* changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix Motion Vectors written by transparent when rendering with MSAA #315

* Fix issue with the resolve of motion vectors (#421)

* fix issue with ShowPrePassAndPostPass

* fix compilation issue in rendergraph

* Fixed null reference exception in LookDev when setting the SRP to None #447

* Check reflection probe null pointer before use. (case 1244047) #456

* Remove max atlas probe alloc size in HDRP asset (#458)

* Fixed max alloc planar size not taking in account the max cache size

* Removed the max cache clamp on texture atlases

* Fix few multi-editing issues with Emission UI #473

* Re-enable cubemap thumbnail gen only for d3d11 #487

* Hd/fix undo environmentlibrary lookdev #490

* Added system requirements and frame settings api docs (#510)

* Added system requirements and frame settings api doc

* Update System-Requirements.md

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

Co-authored-by: anisunity <42026998+anisunity@users.noreply.github.com>
Co-authored-by: Remi Chapelain <remi.chapelain@unity3d.com>
Co-authored-by: Anis <anis@unity3d.com>
Co-authored-by: JulienIgnace-Unity <julien@unity3d.com>
Co-authored-by: JordanL8 <lewis.jordan@hotmail.co.uk>
Co-authored-by: FrancescoC-unity <43168857+FrancescoC-unity@users.noreply.github.com>
Co-authored-by: Adrien de Tocqueville <adrien.tocqueville@unity3d.com>
Co-authored-by: slunity <37302815+slunity@users.noreply.github.com>
Co-authored-by: Antoine Lelievre <antoinel@unity3d.com>
Co-authored-by: Remi Slysz <40034005+RSlysz@users.noreply.github.com>
Co-authored-by: Pavlos Mavridis <pavlos.mavridis@unity3d.com>
Co-authored-by: Fabien Houlmann <44069206+fabien-unity@users.noreply.github.com>
Co-authored-by: victor <victor.ceitelis@unity3d.com>
Co-authored-by: fredericv-unity3d <55485372+fredericv-unity3d@users.noreply.github.com>
Co-authored-by: Aras Pranckevičius <aras@unity3d.com>
Co-authored-by: Emmanuel Turquin <emmanuel@turquin.org>
Co-authored-by: skhiat <55133890+skhiat@users.noreply.github.com>
  • Loading branch information
18 people committed May 15, 2020
1 parent 414f735 commit 2e579c5
Show file tree
Hide file tree
Showing 16 changed files with 316 additions and 47 deletions.
2 changes: 2 additions & 0 deletions com.unity.render-pipelines.core/CHANGELOG.md
Expand Up @@ -14,6 +14,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Fixed copy/pasting of Volume Components when loading a new scene
- Fix LookDev's camera button layout.
- Fix LookDev's layout vanishing on domain reload.
- Fixed null reference exception in LookDev when setting the SRP to one not implementing LookDev (case 1245086)
- Fix LookDev's undo/redo on EnvironmentLibrary (case 1234725)

## [7.3.0] - 2020-03-11

Expand Down
12 changes: 12 additions & 0 deletions com.unity.render-pipelines.core/Editor/LookDev/Context.cs
Expand Up @@ -264,6 +264,18 @@ internal bool HasLibraryAssetChanged(EnvironmentLibrary environmentLibrary)

return m_EnvironmentLibraryGUID != AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(environmentLibrary));
}

internal void FullReimportEnvironmentLibrary()
{
if (environmentLibrary == null)
return;

// refresh AssetDatabase in case of undo/redo creating/destructing environment subasset
string libraryPath = AssetDatabase.GetAssetPath(environmentLibrary);
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(environmentLibrary), ImportAssetOptions.DontDownloadFromCacheServer | ImportAssetOptions.ForceSynchronousImport | ImportAssetOptions.ForceUpdate | ImportAssetOptions.ImportRecursive);
UpdateEnvironmentLibrary(AssetDatabase.LoadAssetAtPath<EnvironmentLibrary>(libraryPath));
EditorUtility.SetDirty(environmentLibrary);
}
}

/// <summary>
Expand Down
Expand Up @@ -463,5 +463,13 @@ void OnFocus()
((IEnvironmentDisplayer)this).Repaint();
}
}

void FullRefreshEnvironmentList()
{
if (LookDev.currentContext.environmentLibrary != null)
LookDev.currentContext.FullReimportEnvironmentLibrary();

((IEnvironmentDisplayer)this).Repaint();
}
}
}
21 changes: 20 additions & 1 deletion com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.cs
Expand Up @@ -3,6 +3,8 @@
using UnityEngine;
using UnityEngine.UIElements;

using RenderPipelineManager = UnityEngine.Rendering.RenderPipelineManager;

namespace UnityEditor.Rendering.LookDev
{
/// <summary>Interface that must implement the viewer to communicate with the compositor and data management</summary>
Expand Down Expand Up @@ -257,9 +259,15 @@ void OnEnable()

ApplyLayout(viewLayout);
ApplySidePanelChange(layout.showedSidePanel);

Undo.undoRedoPerformed += FullRefreshEnvironmentList;
}

void OnDisable() => OnClosedInternal?.Invoke();
void OnDisable()
{
Undo.undoRedoPerformed -= FullRefreshEnvironmentList;
OnClosedInternal?.Invoke();
}

void CreateToolbar()
{
Expand Down Expand Up @@ -680,6 +688,17 @@ void OnGUI()
rootVisualElement.styleSheets.Add(styleSheetLight);
}

// [case 1245086] Guard in case the SRP asset is set to null (or to a not supported SRP) when the lookdev window is already open
// Note: After an editor reload, we might get a null OnUpdateRequestedInternal and null SRP for a couple of frames, hence the check.
if (!LookDev.supported && OnUpdateRequestedInternal !=null)
{
// Print an error and close the Lookdev window (to avoid spamming the console)
Debug.LogError($"LookDev is not supported by this Scriptable Render Pipeline: "
+ (RenderPipelineManager.currentPipeline == null ? "No SRP in use" : RenderPipelineManager.currentPipeline.ToString()));
LookDev.Close();
return;
}

OnUpdateRequestedInternal?.Invoke();
}
}
Expand Down
Expand Up @@ -32,15 +32,21 @@ public class EnvironmentLibrary : ScriptableObject
/// <returns>The created Environment</returns>
public Environment Add()
{
Undo.SetCurrentGroupName("Add Environment");
int group = Undo.GetCurrentGroup();

Environment environment = ScriptableObject.CreateInstance<Environment>();
environment.name = "New Environment";
Undo.RegisterCreatedObjectUndo(environment, "Add Environment");

Undo.RecordObject(this, "Add Environment");
environments.Add(environment);

// Store this new environment as a subasset so we can reference it safely afterwards.
AssetDatabase.AddObjectToAsset(environment, this);

Undo.CollapseUndoOperations(group);

// Force save / refresh. Important to do this last because SaveAssets can cause effect to become null!
EditorUtility.SetDirty(this);
AssetDatabase.SaveAssets();
Expand All @@ -54,11 +60,16 @@ public Environment Add()
/// <param name="index">Index where to remove Environment</param>
public void Remove(int index)
{
Undo.SetCurrentGroupName("Remove Environment");
int group = Undo.GetCurrentGroup();

Environment environment = environments[index];
Undo.RecordObject(this, "Remove Environment");
environments.RemoveAt(index);
Undo.DestroyObjectImmediate(environment);

Undo.CollapseUndoOperations(group);

// Force save / refresh
EditorUtility.SetDirty(this);
AssetDatabase.SaveAssets();
Expand Down
3 changes: 3 additions & 0 deletions com.unity.render-pipelines.high-definition/CHANGELOG.md
Expand Up @@ -86,6 +86,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- VFX: Removed irrelevant queues in render queue selection from HDRP outputs
- VFX: Motion Vector are correctly renderered with MSAA [Case 1240754](https://issuetracker.unity3d.com/product/unity/issues/guid/1240754/)
- Fixed a cause of NaN when a normal of 0-length is generated (usually via shadergraph).
- Fixed error when undo a Reflection Probe removal in a prefab instance. (case 1244047)
- Fixed various multi-editing issues when changing Emission parameters.
- Fixed issue that prevented cubemap thumbnails from rendering (only on D3D11 and Metal).

### Changed
- Rejecting history for ray traced reflections based on a threshold evaluated on the neighborhood of the sampled history.
Expand Down
@@ -0,0 +1,112 @@
# Frame Settings Scripting API

In the High Definition Render Pipelines (HDRP), [Frame Settings](Frame-Settings.md) control how a rendering component, such as a [Camera](HDRP-Camera.md), [Reflection Probe](Reflection-Probe.md), or [Planar Reflection Probe](Planar-Reflection-Probe.md), renders a Scene. You can specify default Frame Settings for your entire Project and then override them for a particular rendering component. This means that each Frame Setting has a default value, set in the [HDRP Asset](HDRP-Asset.md), then each individual rendering component in your Scene can have an override for it. This is useful if you have lower priority rendering components that do not need to use certain effects. To specify which default Frame Settings a rendering component overrides, each rendering component contains an [override mask](../api/UnityEngine.Rendering.HighDefinition.FrameSettingsOverrideMask.html). A mask is an array of bits, where each bit represents one of two states (0 for disabled and 1 for enabled). Each bit in the override mask represents the override state of a particular Frame Setting.

To get the final value of a Frame Setting for a particular rendering component, HDRP performs the following steps:

1. Checks the Project-wide default value for the Frame Setting. In this step, HDRP checks the current value stored for the Frame Setting in the HDRP Asset.
2. Checks the rendering component's override mask to see if the bit that corresponds to the Frame Setting is set. The state of the Frame Setting's bit in the override mask corresponds to the state of the override checkbox to the left of the Frame Setting in the rendering component's Inspector.
3. Gets the Frame Setting's override value from the rendering component's custom Frame Settings.
4. Sanitizes the result. To lighten your Project, you can specify which features to use in the HDRP Asset. If the Frame Setting you try to modify affects an unavailable feature, Unity discards it in this final sanitization pass. To make sure it is not possible for HDRP to process features that are not available, you cannot access the sanitization process via scripting API.

## Modifying default Frame Settings

The Default Frame Settings are in the HDRP Asset, so it is not good practice to modify them at runtime. Instead, you can modify them in Edit mode in [Default Settings tab](Default-Settings-Window.md).

Note that you can set individual default Frame Settings for three types of rendering component:

- Cameras
- Realtime Reflection Probes and Realtime Planar Reflection Probes
- Baked/custom Reflection Probes and Baked/custom Planar Reflection Probe

There is currently no scripting API to modify default Frame Settings.

## Modifying Frame Settings for a particular rendering component

HDRP stores the Frame Settings for rendering components in additional data components attached to the rendering component. The additional data components are:

| **Rendering component** | **Additional data component** |
| ----------------------- | ----------------------------- |
| **Camera** | HDAdditionalCameraData |
| **Reflection Probe** | HDAdditionalReflectionData |

To modify the value of a Frame Setting, the first step is to get a reference to the additional data component. To do this, either create a public variable and assign it in the Inspector, or use [GetComponent<T>()](https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html) where T is the additional data component type.

Next, access the Frame Settings override mask. This controls which Frame Settings to use overridden values for and is of type `FrameSettingsOverrideMask`. Accessing the Frame Settings override mask is different depending on whether you want to modify the Frame Settings of a Camera or a Reflection Probe:

- **Camera**: `HDAdditionalCameraData.renderingPathCustomFrameSettingsOverrideMask`
- **Reflection Probe**: `HDAdditionalReflectionData.frameSettingsOverrideMask`

For information on the API available for `FrameSettingsOverrideMask`, including how to set/unset a bit in the mask, see [FrameSettingsOverrideMask Scripting API](#framesettingsoverridemask-scripting-api).

Finally, access the Frame Settings structure itself. This controls the actual value for each Frame Setting and is of type `FrameSettings`. Accessing the Frame Settings is also different depending on whether you want to modify the Frame Settings of a Camera or a Reflection Probe:

- **Camera**: `HDAdditionalCameraData.renderingPathCustomFrameSettings`
- **Reflection Probe**: `HDAdditionalReflectionData.frameSettings`

For information on the API available for `FrameSettings`, including how to edit the value of a Frame Setting, see [FrameSettings Scripting API](framesettings-scripting-api).

## Frame Setting enumerations

To make it easier to set the value of some Frame Settings, HDRP provides the following enum types.

### LitShaderMode

An enum which helps to switch a rendering component between deferred and forward rendering.

For information on what each enum value does, see [LitShaderMode](../api/UnityEngine.Rendering.HighDefinition.LitShaderMode.html).

### LODBiasMode

An enum which defines how HDRP calculates a LOD bias.

For information on what each enum value does, see [LODBiasMode](../api/UnityEngine.Rendering.HighDefinition.LODBiasMode.html).

### MaximumLODLevelMode

An enum which defines how HDRP calculates the maximum LOD level.

For information on what each enum value does, see [MaximumLODLevelMode](../api/UnityEngine.Rendering.HighDefinition.MaximumLODLevelMode.html).

### FrameSettingsField

An enum where each entry represents a particular Frame Setting. For a list of entries in this enum, see [FrameSettingsField](../api/UnityEngine.Rendering.HighDefinition.FrameSettingsField.html).

As well as an entry for each Frame Settings, this enum also includes the value `FrameSettingsField.None` that is set to **-1** for convenience and internal usage.

## FrameSettingsOverrideMask Scripting API

This is a structure that has a single field which stores the override mask. For more information about this structure and the API it contains, see [FrameSettingsOverrideMask](../api/UnityEngine.Rendering.HighDefinition.FrameSettingsOverrideMask.html).

In the override mask, to allow you to easily access the bit for a given Frame Setting, HDRP provides the [FrameSettingsField](#framesettingsfield) enum. You can use this, for example, to find the bit responsible for overriding the **Opaque Objects** Frame Setting. To do this, you would do `this[(int)FrameSettingsField.OpaqueObjects]`.

The following example shows how to compare the `humanizedData` from a rendering component's override mask with the rendering component's custom Frame Settings. There are some custom Frame Settings set, but the mask is all zeros which means that this rendering component uses the default Frame Settings.

![](Images/FrameSettingsAPI-watch.png)

## FrameSettings Scripting API

This is a structure that contains information on how a rendering component should render the Scene. For more information about this structure and the API it contains, see [FrameSettings](../api/UnityEngine.Rendering.HighDefinition.FrameSettings.html).

### Example

The following example demonstrates a component that changes a Camera's Frame Settings so the Camera does not render opaque GameObjects. It has the public field `cameraToChange`, which represents the Camera to change the Frame Settings for, and the public function `RemoveOpaqueObjectsFromRendering`, which contains the logic to change the Camera's Frame Settings.

```
using UnityEngine;
using UnityEngine.Rendering.HighDefinition;
public class ChangeFrameSettings : MonoBehaviour
{
public Camera cameraToChange;
public void RemoveOpaqueObjectsFromRendering()
{
HDAdditionalCameraData hdCameraData = cameraToChange.GetComponent<HDAdditionalCameraData>();
hdCameraData.renderingPathCustomFrameSettingsOverrideMask.mask[(int)FrameSettingsField.OpaqueObjects] = true;
hdCameraData.renderingPathCustomFrameSettings.SetEnabled(FrameSettingsField.OpaqueObjects, false);
}
}
```
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@@ -0,0 +1,37 @@
# Requirements and compatibility

This page contains information on system requirements and compatibility of the High Definition Render Pipeline (HDRP) package.

## Unity Editor compatibility

The following table shows the compatibility of the High Definition Render Pipeline (HDRP) versions with different Unity Editor versions.

| **Package version** | **Minimum Unity version** | **Maximum Unity version** |
| ------------------- | ------------------------- | ------------------------- |
| 10.x | 2020.2 | 2020.2 |
| 8.x / 9.x-preview | 2020.1 | 2020.1 |
| 7.x | 2019.3 | 2019.4 |
| 6.x | 2019.2 | 2019.2 |

## Render pipeline compatibility

Projects made using HDRP are not compatible with the Universal Render Pipeline (URP) or the Built-in Render Pipeline. Before you start development, you must decide which render pipeline to use in your Project. For information on choosing a render pipeline, see the [Render Pipelines](https://docs.unity3d.com/2019.3/Documentation/Manual/render-pipelines.html) section of the Unity Manual.

## Unity Player system requirements

This section describes the HDRP package’s target platform requirements. For platforms or use cases not covered in this section, general system requirements for the Unity Player apply.

For more information, see [System requirements for Unity](https://docs.unity3d.com/Manual/system-requirements.html).

HRDP is only compatible with the following platforms:

- Windows and Windows Store, with DirectX 11 or DirectX 12 and Shader Model 5.0
- Modern consoles (Sony PS4 and Microsoft Xbox One)
- MacOS (minimum version 10.13) using Metal graphics
- Linux and Windows platforms with Vulkan

**Note: HDRP only works on these platforms if the device used supports Compute Shaders. HDRP does not support OpenGL or OpenGL ES devices.**

### Ray tracing

To use ray tracing in HDRP, there are hardware requirements you must meet. For information on these requirements, see [Getting started with ray tracing](Ray-Tracing-Getting-Started.md#HardwareRequirements).
Expand Up @@ -3,6 +3,7 @@
* [Features List](HDRP-Features)
* [Comparison with the Built-in Render Pipeline](Feature-Comparison)
* Getting started
* [System Requirements](System-Requirements.md)
* [Getting Started with HDRP](Getting-started-with-HDRP)
* [Upgrading to HDRP](Upgrading-To-HDRP)
* [Render Pipeline Wizard](Render-Pipeline-Wizard)
Expand Down Expand Up @@ -152,5 +153,6 @@
* [Creating a Custom Sky](Creating-a-Custom-Sky)
* [Creating a Custom Post-Process Effect](Custom-Post-Process)
* [Creating a Custom Render Pass](Custom-Pass)
* [Editing Frame Settings at Runtime](Frame-Settings-API.md)
* [HDRP Glossary](Glossary)
* [Known Issues and How To Fix Them](Known-Issues)
Expand Up @@ -10,13 +10,4 @@ NOTE: Projects that you make with HDRP are not compatible with the Universal Ren

This documentation contains the information you need to create applications using HDRP; including information on Lighting, Materials and Shaders, Cameras, and debugging.

HRDP is only supported on the following platforms:

* Windows and Windows Store, with DirectX 11 or DirectX 12 and Shader Model 5.0
* Modern consoles (Sony PS4 and Microsoft Xbox One)
* MacOS using Metal graphics
* Linux and Windows platforms with Vulkan

**HDRP does not support OpenGL or OpenGL ES devices.**

**Note: HDRP only works on these platforms if the device used supports Compute Shaders.**
For information on platform support and system requirements, see [System Requirements](System-Requirements.md).
Expand Up @@ -233,7 +233,12 @@ public override Texture2D RenderStaticPreview(string assetPath, Object[] subAsse
m_PreviewUtility.ambientColor = Color.black;
m_PreviewUtility.BeginStaticPreview(new Rect(0, 0, width, height));
m_PreviewUtility.DrawMesh(sphereMesh, Matrix4x4.identity, previewMaterial, 0);
m_PreviewUtility.camera.Render();
// TODO: For now the following line is D3D11 + Metal only as it cause out of memory on both DX12 and Vulkan API.
// We will need to invest time to understand what is happening
// For now priority is to enable Yamato platform automation
// This mean that cubemap icon will render incorrectly on anything but D3D11
if(SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11 || SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal)
m_PreviewUtility.camera.Render();

var outTexture = m_PreviewUtility.EndStaticPreview();

Expand Down

0 comments on commit 2e579c5

Please sign in to comment.