Skip to content

Commit

Permalink
Show file tree
Hide file tree
Showing 24 changed files with 34 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ This page covers the process of how to use the RenderGraph API to write a render
To begin, your render pipeline needs to maintain at least one instance of [RenderGraph](../api/UnityEngine.Rendering.RenderGraphModule.RenderGraph.html). This is the main entry point for the API. You can use more than one instance of a render graph, but be aware that Unity does not share resources across `RenderGraph` instances so for optimal memory usage, only use one instance.

```c#
using UnityEngine.Rendering;
using UnityEngine.Rendering.RenderGraphModule;

public class MyRenderPipeline : RenderPipeline
Expand All @@ -21,8 +22,11 @@ public class MyRenderPipeline : RenderPipeline
void CleanupRenderGraph()
{
m_RenderGraph.Cleanup();
m_RenderGraph = null;
m_RenderGraph = null;
}

...

}
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ You can use AOVs to output the contribution from a selected list of [Lights](Lig
## Custom Pass AOVs
You can use AOVs to output the results of [custom passes](Custom-Pass.md). In particular, you can output the cumulative results of all custom passes that are active on every custom pass injection point. This can be useful to output arbitrary information that custom passes compute, such as the Object ID of the Scene GameObjects.

## Rendering Precission
## Rendering precision
By default AOVs are rendering at the precision and format selected in the HDRP asset. If the AOVRequest is configured with *SetOverrideRenderFormat* option set to true, then rendering will use the same precision as the user allocated AOV output buffer.

## Scripting API example
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,14 @@ You can also add your own settings. Refer to [Add custom settings](https://docs.
| **Property** | **Description** |
| --------------------------| ------------------------------------------------------------ |
| Shader Variant Log Level | Use the drop-down to select what information HDRP logs about Shader variants when you build your Unity Project. • Disabled: HDRP doesn’t log any Shader variant information.• Only SRP Shaders: Only log Shader variant information for HDRP Shaders.• All Shaders: Log Shader variant information for every Shader type. |
| Export Shader Variants | Controls whether to output shader variant information to a file. |

| Export Shader Variants | Controls whether to output shader variant information to a file. Unity saves the information to the folder with your project files, in `Temp/graphics-settings-stripping.json` and `Temp/shader-stripping.json`. |

## Custom Post Process Orders

Use this section to select which custom post processing effect HDRP uses in the project and at which stage in the render pipeline it executes them.

HDRP provides one list for each post processing injection point. See the [Custom Post Process](Custom-Post-Process.md) documentation for more details.

![](Images/HDRPgs_Custom_PP.png)


## Frame Settings (Default Values)

The [Frame Settings](Frame-Settings.md) control the rendering passes that Cameras perform at runtime.
Expand All @@ -48,7 +44,7 @@ You can use the **Volume Profiles** section to assign and edit a [Volume Profile

The **Default Volume Profile Asset** (A) references a Volume Profile in the HDRP package folder called `DefaultSettingsVolumeProfile` by default. Below it, you can add [Volume overrides](volume-component.md), and edit their properties. You can assign your own Volume Profile to this property field. Be aware that this property must always reference a Volume Profile. If you assign your own Volume Profile and then delete it, HDRP automatically re-assigns the `DefaultSettingsVolumeProfile` from the HDRP package folder.

The **LookDev Volume Profile Asset** (B) references the Volume Profile HDRP uses in the [LookDev window](test-and-debug-materials-in-different-lighting-conditions-look-dev.md). This Asset works in almost the same way as the Default Volume Profile Asset, except that it overrides [Visual Environment Components](visual-environment-volume-override-reference.md) and sky components.![](Images/HDRPgs_Volume_Profiles.png)
The **LookDev Volume Profile Asset** (B) references the Volume Profile HDRP uses in the [LookDev window](test-and-debug-materials-in-different-lighting-conditions-look-dev.md). This Asset works in almost the same way as the Default Volume Profile Asset, except it overrides [Visual Environment Components](visual-environment-volume-override-reference.md) and sky components.

## Resources

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Forward and Deferred rendering both implement the same features, but the quality

## Differences between Forward and Deferred rendering in HDRP

| **Feature** | **Forward Rendering** | **Defferred** |
| **Feature** | **Forward Rendering** | **Deferred** |
|---|---|---|
| **Normal shadow bias** | HDRP uses the geometric normal (the vertex normal) of the Material for shadow bias, so Forward Rendering produces fewer shadow artifacts. | HDRP uses the pixel normal of the Material for shadow bias, so Deferred Rendering produces more shadow artifacts. |
| **Emissive Color** | Ambient Occlusion doesn't affect Emissive Color. | Ambient Occlusion affects Emissive Color due to technical constraints. |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ Frame Settings are settings HDRP uses to render Cameras, real-time, baked, and c

You can set the default values for Frame Settings for each of these three individually from within the the [HDRP Graphics settings window](Default-Settings-Window.md).

![](Images/FrameSettings1.png)

To make Cameras and Reflection Probes use their respective default values for Frame Settings, disable the **Custom Frame Settings** checkbox under the **General** settings of Cameras or under **Capture Settings** of Reflection Probes.

You can override the default value of a Frame Setting on a per component basis. Enable the **Custom Frame Settings** checkbox to set specific Frame Settings for individual Cameras and Reflection Probes. This exposes the Frame Settings Override which gives you access to the same settings as within the HDRP Global Settings. Edit the settings within the Frame Settings Override to create a Frame Settings profile for an individual component.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ These settings control the draw distance and resolution of the decals atlas that
| **-- Use Optimal Settings** | Enable the checkbox to make DLSS control the Sharpness and Screen Percentage automatically. |
| **-- Sharpness** | Controls how the DLSS upsampler renders edges on the image. More sharpness usually means more contrast and a clearer image but can increase flickering and fireflies. Unity ignores this property if you enable **Use Optimal Settings**. |
| **- Dynamic Resolution Type** | Use the drop-down to select the type of dynamic resolution HDRP uses:<br />&#8226; **Software**: This option allocates render targets to accommodate the maximum resolution possible, then rescales the viewport accordingly. This allows the viewport to render at varying resolutions. <br />&#8226; **Hardware**: This option treats the render targets, up until the back buffer, as if they are all the scaled size. This means HDRP clears the render targets faster. |
| **- Upscale Filter** | Use the drop-down to select the filter that HDRP uses for upscaling (unless overridden by user via script). The options are:<br />&#8226; **Catmull-Rom**: A bicubic upsample with 4 taps.<br />&#8226; **Contrast Adaptive Sharpen**: An ultra sharp upsample. This option is not meant for screen percentages less than 50% and still sharpens when you set the screen percentage to 100%. It uses **FidelityFX (CAS) AMD™**. <br />&#8226; **FidelityFX Super Resolution 1.0 AMD™**: A spatial super-resolution technology that leverages cutting-edge algorithms to produce impressive upscaling quality at very fast performance.<br />&#8226; **TAA Upscale**: A temporal anti-aliasing upscaler that uses information from previous frames to produce high-quality visuals. <br />&#8226; **Scalable Temporal Post-Processing (STP)**: A low-overhead spatio-temporal anti-aliasing upscaler that attempts to produce sharp visuals at scaling factors as low as 50%. |
| **- Upscale Filter** | Use the drop-down to select the filter that HDRP uses for upscaling (unless overridden by user via script). The options are:<br />&#8226; **Catmull-Rom**: A bicubic upsample with 4 taps.<br />&#8226; **Contrast Adaptive Sharpen**: An ultra sharp upsample. This option is not meant for screen percentages less than 50% and still sharpens when you set the screen percentage to 100%. It uses **FidelityFX (CAS) AMD™**. <br />&#8226; **FidelityFX Super Resolution 1.0 AMD™**: A spatial super-resolution technology that leverages cutting-edge algorithms to produce impressive upscaling quality at very fast performance.<br />&#8226; **TAA Upscale**: A temporal anti-aliasing upscaler that uses information from previous frames to produce high-quality visuals. <br />&#8226; **Spatial-Temporal Post-processing (STP)**: A low-overhead spatio-temporal anti-aliasing upscaler that attempts to produce sharp visuals at scaling factors as low as 50%. |
| **- Use Mip Bias** | Apply a negative bias on the texture samplers of deferred, opaque and transparent passes. This improves detail on textures but increases the texture fetching cost. Cost varies per platform. |
| **- Minimum Screen Percentage** | The minimum screen percentage that dynamic resolution can reach. |
| **- Maximum Screen Percentage** | The maximum screen percentage that dynamic resolution can reach. This value must be higher than the **Min Screen Percentage**. |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ Enable the following properties:

You can enable Contact Shadows on a per Light basis for Directional, Point, and Spot Lights. Tick the **Enable** checkbox under the **Contact Shadows** drop-down in the **Shadows** section of each Light to indicate that HDRP should calculate Contact Shadows for that Light.

Only one Light can cast Contact Shadows at a time. This means that, if you have more than one Light that casts Contact Shadows visible on the screen, only the dominant Light renders Contact Shadows. HDRP chooses the dominant Light using the screen space size of the Light’s bounding box. A Directional Light that casts Contact Shadows is always the dominant Light.

**Note**: A Light casts Contact Shadows for every Mesh Renderer that uses a Material that writes to the depth buffer. This is regardless of whether you enable or disable the **Cast Shadows** property on the Mesh Renderer. This means that you can disable **Cast Shadows** on small GameObjects/props and still have them cast Contact Shadows. This is good if you do not want HDRP to render these GameObjects in shadow maps. If you do not want this behavior, use Shader Graph to author a Material that does not write to the depth buffer.

[!include[](snippets/volume-override-api.md)]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Micro Shadows

Micro shadows are shadows that the High Definition Render Pipeline (HDRP) simulates for small details embedded in the Material of a GameObject, but not in its Mesh geometry. HDRP uses the details from the normal map and the ambient occlusion map to estimate the shadows those maps would cast if they were Meshes.
Micro shadows are shadows that the High Definition Render Pipeline (HDRP) simulates for small details embedded in the Material of a GameObject, but not in its Mesh geometry.

HDRP uses the details from the normal map, the ambient occlusion map, and specular occlusion to estimate the shadows those details would cast if they were meshes.

In this image, the different layers of details in the Material shadow each other.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ For more information, see [System requirements for Unity](https://docs.unity3d.c
HRDP is compatible with the following platforms:

- Windows and Windows Store, with DirectX 11 or DirectX 12 and Shader Model 5.0
- Google
- Stadia
- Sony
- PlayStation 4
- PlayStation 5
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
* [HDRP Packge](index.md)
* [HDRP Package](index.md)
* [What's new](whats-new.md)
* [What's new in HDRP 17](whats-new-17.md)
* [What's new in HDRP 16](whats-new-16.md)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ You can also watch the presentation from Unite Copenhagen (October 2019) to lear
* **PC with DX11/DX12/Vulkan**:
* Oculus Rift & Rift S (Oculus XR Plugin, Windows 10 and 11, DirectX 11, DirectX 12, Vulkan)
* Windows Mixed Reality (Windows XR Plugin, Windows 10 and 11, DirectX 11, DirectX 12, Vulkan)
* OpenVR
* **PS4** and **PS5**:
* PlayStationVR
* Open VR*

**Note**: Valve is currently developing their OpenVR Unity XR plugin for 2019.3 and beyond.
For more information, refer to [XR Plugin Architecture](https://docs.unity3d.com/Manual/XRPluginArchitecture.html).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ To set a source material for the `Blit()` command to use in shader graph:
5. In **Node Settings**, enable the **Exposed** toggle so `Blit()`can bind the texture.
4. Drag the **MainTex** node into your shader graph.
5. Press the Spacebar to open the **Create Node** window
6. In the **Create Node** window, search for the **Texture 2D Array** node and select it to create it in your scene.
6. In the **Create Node** window, search for the **Sample Texture 2D Array** node and select it to create it in your scene.
7. Connect the **MainTex** node to the **Texture Array** port of the **Sample Texture 2D Array** node.
8. Connect the **RBGA** output port of the **Sample Texture 2D Array** to the **Base Color** block in the **Fragment** context.
9. `Blit()` automatically binds the source texture inside the `_MainTex` property.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The [**Volumetric Clouds** Volume component override](volumetric-clouds-volume-o

[!include[](snippets/Volume-Override-Enable-Override.md)]

* In your [HDRP Asset](HDRP Asset) go to **Lighting > Volumetrics > Volumetric Clouds**.
* In your [HDRP Asset](HDRP-Asset.md) go to **Lighting > Volumetrics > Volumetric Clouds**.

* In your [Frame Settings](Frame-Settings.md) go to **Lighting > Volumetric Clouds**.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ To enable streaming, follow these steps:

You can now enable two types of streaming:

- Enable **Enable Disk Streaming** to stream from disk to CPU memory.
- Enable **Enable GPU Streaming** to stream from CPU memory to GPU memory. You must enable **Enable Disk Streaming** first.
- Enable **Enable GPU Streaming** to stream from CPU memory to GPU memory.
- Enable **Enable Disk Streaming** to stream from disk to CPU memory. You must enable **Enable GPU Streaming** first.

You can configure streaming settings in the same window. Refer to [HDRP Asset](HDRP-Asset.md#Lighting) for more information.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ To make sure Reflection Probes also capture lighting data from Adaptive Probe Vo

1. To include a Light in an Adaptive Probe Volume's baked lighting data, open the Inspector for the Light then set the **Light Mode** to **Mixed** or **Baked**.
2. To include a GameObject in an Adaptive Probe Volume's baked lighting data, open the Inspector for the GameObject and enable **Contribute Global Illumination**.
3. To make a GameObject receive baked lighting, open the Inspector for the GameObject and set **Receive Global Illumination** to **Light Probes**.
3. To make a GameObject receive baked lighting, open the Inspector for the GameObject, then in the **Mesh Renderer** component set **Receive Global Illumination** to **Light Probes**.

### Bake your lighting

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ Use ray tracing to create realistic lighting and access other data in a scene th

- [Path tracing reference](reference-path-tracing.md)
- [Recursive rendering override reference](reference-recursive-rendering.md)
- [Ray Tracing Settings reference](reference-ray-tracing-settings.md
- [Ray Tracing Settings reference](reference-ray-tracing-settings.md)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Customize the the High Definition Render Pipeline (HDRP)
# Customize the High Definition Render Pipeline (HDRP)

The High Definition Render Pipeline (HDRP) uses the [render graph system](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest/index.html?subfolder=/manual/render-graph-system.html) in its implementation. This means that if you want to extend HDRP and implement your own render pipeline features, you need to learn how the render graph system works and how to write rendering code using it. For information on the render graph system and how to use it to write render pipeline features, see the [render graph system](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest/index.html?subfolder=/manual/render-graph-system.html) documentation.

Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ The only call that takes any parameters is **BeginRecording**. Here is an explan
| **ShutterInterval** | The amount of time the shutter is open between two subsequent frames. A value of **0** results in an instant shutter (no motion blur). A value of **1** means there is no (time) gap between two subsequent frames. |
| **ShutterProfile** | An animation curve that specifies the shutter position during the shutter interval. Alternatively, you can also provide the time the shutter was fully open; and when the shutter begins closing. |

Before calling the accumulation API, the application should also set the desired `Time.captureDeltaTime`. The example script below demonstrates how to use these API calls.
Before calling the accumulation API, the application should also set the desired `Time.captureDeltaTime`. Refer to [Combine animations in a script](rendering-combine-animation-sequences-in-script) for an example.

## Limitations

The multi-frame rendering API internally changes the `Time.timeScale` of the Scene. This means that:

- You can't have different accumulation motion blur parameters per camera.
- Projects that already modify this parameter per frame aren't be compatible with this feature.
- Projects that already modify this parameter per frame aren't be compatible with this feature.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ The High Definition Render Pipeline (HDRP) provides a scripting API that allows

This API is particularly useful when recording path-traced movies. Normally, when editing a Scene, the convergence of path tracing restarts every time the Scene changes, to provide artists an interactive editing workflow that allows them to quickly visualize their changes. However such behavior isn't desirable during recording.

The following image shows a rotating GameObject with path tracing and accumulation motion blur, recorded using the [multi-frame recording API](rendering-multiframe recording API)
The following image shows a rotating GameObject with path tracing and accumulation motion blur, recorded using the [multi-frame recording API](rendering-multiframe-recording-API.md)

[](Images/path_tracing_recording.png)
Loading

0 comments on commit ad407bb

Please sign in to comment.