Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
## [5.1.2] - 2024-12-05
### Changed
- Users can now enable alpha capture from the UI in projects that use URP.
  • Loading branch information
Unity Technologies committed Dec 5, 2024
1 parent b1e82d5 commit 98f9fc8
Show file tree
Hide file tree
Showing 20 changed files with 102 additions and 50 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ All notable changes to this package will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [5.1.2] - 2024-12-05
### Changed
- Users can now enable alpha capture from the UI in projects that use URP.

## [5.1.1] - 2024-05-22
### Changed
- Disallow `ActiveCamera` from being selected with SRP-based projects as a camera source.
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions Documentation~/KnownIssues.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ This page lists some known issues and limitations that you might experience with

#### Limited support of AA/TAA in AOVs

**Limitation:** The Beauty AOV is the only AOV that you can currently record with Anti-Aliasing (AA) / Temporal Anti-Aliasing (TAA) enabled on your recording camera.
**Limitation:** The "Beauty" Arbitrary Output Variable (AOV) is the only AOV that you can currently record with Anti-Aliasing (AA) / Temporal Anti-Aliasing (TAA) enabled on your recording camera.

#### Color artifacts in AOV recordings when TAA is enabled

**Known issue:** If you record multiple AOVs while the recording camera has Temporal Anti-Aliasing (TAA) enabled, the recorded outputs might contain unexpected color artifacts. For example, some areas of a Beauty pass might include artificial colors coming from the data recorded for a Normal pass.
**Known issue:** If you record multiple Arbitrary Output Variables (AOVs) while the recording camera has Temporal Anti-Aliasing (TAA) enabled, the recorded outputs might contain unexpected color artifacts. For example, some areas of a Beauty pass might include artificial colors coming from the data recorded for a Normal pass.

**Workaround:** If you need to record a Beauty pass with TAA enabled on your recording camera, you should record it through its own recording session, separately from any other AOVs.

Expand Down
2 changes: 1 addition & 1 deletion Documentation~/RecorderImage.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Use this section to set up the media format you need to save the recorded images
|Property||Function|
|:---|:---|:---|
| **Media File Format** || The file encoding format.<br/><br/>Choose **PNG**, **JPEG**, or **EXR** ([OpenEXR](https://en.wikipedia.org/wiki/OpenEXR)). The Recorder encodes EXR in 16 bits. |
| **Include Alpha** || Enable this property to include the alpha channel in the recording. Disable it to only record the RGB channels.<br/><br/>This property is not available when the selected **Media File Format** doesn't support transparency, when the **Source** is set to **Game View**, or when Image Sequence Recorder is used as a camera input to the Universal Rendering Pipeline ([URP](https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest)). |
| **Include Alpha** || Enable this property to include the alpha channel in the recording. Disable it to only record the RGB channels.<br/><br/>This property is not available when the selected **Media File Format** doesn't support transparency, or when the **Source** is set to **Game View**. To ensure that your project is properly set up to capture alpha, see [Recording with alpha](RecordingAlpha.md).|
| **Color Space** | | The color space (gamma curve and gamut) to use in the output images. |
| | sRGB, sRGB | Uses sRGB curve and sRGB primaries. |
| | Linear, sRGB (unclamped) | Uses linear curve and sRGB primaries.<br/><br/>This option is only available when: <ul><li> Your project uses HDRP.<li> The **Source** is not Game View. The other sources can output linear unclamped sRGB.<li> The **Media File Format** is set to **EXR**.</ul>**Important:** To get the expected unclamped values in the output images, you must:<ul><li> Disable any Tonemapping post-processing effects in your Scene (menu: **Edit > Project Settings > HDRP Default Settings** and deselect **Tonemapping**) and in any Volume that includes a Tonemapping override (select the Volume, navigate in the Inspector and deselect **Tonemapping** if present).<br/><li> Disable **Dithering** on the Camera selected for the capture (in the Inspector, navigate to **General** and deselect **Dithering**).</ul> |
Expand Down
2 changes: 1 addition & 1 deletion Documentation~/RecorderMovie.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Use this section to set up the media format you need to save the recorded images
|:---|:---|
| **Encoder** | The encoder to use for the recording. Each encoder has a specific set of properties:<br />• Select [Unity Media Encoder](#unity-media-encoder-properties) to generate an H.264 MP4 or VP8 WebM video.<br />• Select [GIF Encoder](#gif-encoder-properties) to generate an animated GIF.<br />• Select [ProRes Encoder](#prores-encoder-properties) to generate a video file encoded with an Apple ProRes codec.<br /><br />**Note:** To integrate a custom command line encoder such as FFmpeg and make it available from this list, use the [**Custom Encoder: FFmpeg**](samples-custom-encoder.md) sample provided along with the Recorder package. |
| **Include Audio** | Enable this option to include audio in the recording when the **Encoder** supports it. The Unity Media Encoder supports Mono or Stereo audio recording. The ProRes encoder supports Stereo only.<br/><br/>To enable recording when Include Audio is selected, in **Project Settings** > **Audio** > **Default Speaker Mode**, ensure that **Mono**, or **Stereo** is selected.<br/><br/>**Note:** If you include audio, during recording, the audio signal is sent to the Recorder, not to your system's audio output. |
| **Include Alpha** | Enable this property to include the alpha channel in the recording. Disable it to only record the RGB channels.<br/><br/>This property is not available when the selected **Codec** doesn't support transparency, when the **Source** is set to **Game View**, or when Movie Recorder is used as a camera input to the Universal Rendering Pipeline ([URP](https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest)). |
| **Include Alpha** | Enable this property to include the alpha channel in the recording. Disable it to only record the RGB channels.<br/><br/>This property is not available when the selected **Codec** doesn't support transparency, or when the **Source** is set to **Game View**. To ensure that your project is properly set up to capture alpha, see [Recording with alpha](RecordingAlpha.md). |

### Unity Media Encoder properties

Expand Down
38 changes: 24 additions & 14 deletions Documentation~/RecorderWindowRecordingProperties.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Recording session properties

Use the Recording session properties to simultaneously start or stop recordings for all active Recorders in the Recorder List (listed in the [Recorder window](RecordingRecorderWindow.md)). You can specify the recording duration and frame rate.
Use the Recording session properties to synchronously start or stop recordings for all active Recorders in the Recorder List (listed in the [Recorder window](RecordingRecorderWindow.md)). You can specify the recording duration and frame rate.

![](Images/RecordingControls.png)

Expand Down Expand Up @@ -35,26 +35,36 @@ The Frame Rate properties determine the number of frames recorded, which affects

| Property || Function |
| :--- | :--- | :--- |
| **Playback** || Specifies how to control the frame rate during recording. |
|| _Constant_ | Limits the Recorder to a specific frame rate. Use the **Target** property to specify this rate. |
|| _Variable_ | Reproduces the irregular time intervals between frames that occur when rendering in Game view. Specify the upper limit of the application's rate during recording with the **Max FPS** property. |
| **Target FPS** || Sets the frame rate to capture the recording at. This property appears when you set **Playback** to **Constant**. <br/><br/> The Recorder captures at this rate regardless of whether you run your application at a higher or lower frame rate. For example, if you set **Target FPS** to a custom value of 30 fps but you run your application at 60 fps, the Recorder captures at 30 fps. |
| **Max FPS** || Sets the minimum duration for a frame, therefore limiting FPS. Recorder slows down updates in the Game view to stay within the specified frame rate. <br/>This property is available when **Playback** is **Variable**. |
| **Cap FPS** || Enable this property when the frame rate of your application is faster than the **Target FPS**. This property is available when **Playback** is **Constant**. |
| **Playback** || Select a playback mode to control the frame rate during recording. This property affects the timing of the frames when you play back the file generated by the recording. |
|| _Constant_ | Limits the Recorder to a specific frame rate. Use the **Target FPS** property to specify this rate. Refer to [Constant Playback properties](#constant-playback-properties) for more details. |
|| _Variable_ | Reproduces the irregular time intervals between frames that occur when rendering in Game view. Specify the upper limit of the application's rate during recording with the **Max FPS** property. Refer to [Variable Playback properties](#variable-playback-properties) for more details. |

### Constant versus variable frame rate
#### Constant Playback properties

**Constant** and **Variable** playback properties affect the timing of the frames when the file generated by the recording is played back.
Set **Frame Rate** to **Constant** to apply the same time interval between each recorded frame without regard to the time required to render the frame. You should typically use constant frame rate to record non-interactive content.

* When **Constant** is selected, Recorder applies the same time interval between each recorded frame without regard to the time required to render the frame.
![](Images/RecordingControls-playback-constant.png)

Constant frame rate is typically used for recording non-interactive content.
| Property | Function |
| :--- | :--- |
| **Target FPS** | Sets a constant value for the recording frame rate. |
| **Cap FPS** | Caps the Game view's frame rate to the **Target FPS** value. It is recommended to leave this property enabled in most cases to get the expected results. |



#### Variable Playback properties

* When **Variable** is selected, Recorder captures frames at the rate at which they are rendered during Play mode in the Game view. The duration of individual frames can vary.
Set **Frame Rate** to **Variable** to capture frames at the rate that Play mode renders them in the Game view, where the duration of individual frames can vary.

A video player that supports variable frame rate displays each frame for the time interval associated with it in the recording. If rendering time increases during recording, the resulting frames are held longer during the playback of the recorded frames. The action can vary from slow and choppy to smooth and fast. You should typically use variable frame rate to record game play.

![](Images/RecordingControls-playback-variable.png)

| Property | Function |
| :--- | :--- |
| **Max FPS** | Sets a maximum value for the recording frame rate, therefore defining a minimum frame duration. Recorder slows down updates in the Game view to stay within the specified frame rate. |

A video player that supports variable frame rate displays each frame for the time interval associated with it in the recording. If rendering time increases during recording, the resulting frames are held longer during the playback of the recorded frames. The action can vary from slow and choppy to smooth and fast.

Variable frame rate is typically used to record game play.

>[!NOTE]
>* The ProRes encoder does not support variable frame rate recording.
Expand Down
39 changes: 39 additions & 0 deletions Documentation~/RecordingAlpha.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Record with alpha

Recorder can capture the alpha channel and output transparency under certain conditions that depend on the render pipeline you're using and the Recorder settings.

## Configure the active Render Pipeline

You must set up the active render pipeline to output alpha:

| Render Pipeline | Guide to setup requirements |
| :--- | :--- |
| With High-Definition RP (HDRP) | Refer to [Alpha channel configuration](https://docs.unity3d.com/Packages/[email protected]/manual/Alpha-Output.html) |
| With Univeral RP (URP) version 17+ | Refer to [Alpha processing setting](https://docs.unity3d.com/Packages/[email protected]/manual/whats-new/urp-whats-new.html#alpha-processing-setting-in-post-processing) |

## Choose a recording method

The [two available recording methods](get-started.md) support alpha recording.

## Select the recorder type

You can record alpha with a **Movie Recorder** or an **Image Sequence Recorder**.

## Configure the Recorder

### Input properties

You must set the `Source` to a `Targeted Camera`, as the `Game View` doesn't support the alpha channel.

### Output Format properties

1. Select an output format that supports the alpha channel, for example:
* With an Image Sequence Recorder, select PNG or EXR.
* With a Movie Recorder, select MP4 or use any encoder that supports transparency.
2. Make sure to enable the `Include Alpha` option.

## Additional resources

* [Get started with the Recorder](get-started.md)
* [Movie Recorder properties](RecorderMovie.md)
* [Image Sequence Recorder properties](RecorderImage.md)
2 changes: 1 addition & 1 deletion Documentation~/RecordingVideo.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ The Output Format properties define the media format to save the recorded frames

>[!NOTE]
>* The alpha channel is available for some encoders subject to the following conditions:
> * The render pipeline is High Definition Render Pipeline (HDRP) or Built-in render pipeline.
> * The render pipeline used in your project is [properly set up to output alpha](RecordingAlpha.md).
> * The source is not Game View. The other sources can support alpha.
>* To enable recording when Include Audio is selected, in **Project Settings** > **Audio** > **Default Speaker Mode**, ensure that **Mono** or **Stereo** is selected.
Expand Down
3 changes: 2 additions & 1 deletion Documentation~/TableOfContents.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@
* [Record a video in Full HD MP4](RecordingVideo.md)
* [Record an animated GIF](RecordingAnimatedGif.md)
* [Record an image sequence in linear sRGB color space](RecordingInLinearSrgbColorSpace.md)
* [Record with alpha](RecordingAlpha.md)
* [Record with Accumulation](RecordingAccumulation.md)
* [Understand sub-frame capture](RecorderAccumulationUnderstandSubFrameCapture.md)
* [Accumulate motion blur](RecordingAccumulationMotionBlur.md)
* [Accumulate path tracing](RecordingAccumulationPathTracing.md)
* [Accumulation properties](RecorderAccumulationProperties.md)
* [Record AOVs](aov-concepts.md)
* [Record Arbitrary Output Variables (AOVs)](aov-concepts.md)
* [Launch recordings from the command line](CommandLineRecorder.md)
* [Command line recorder script](CommandLineRecorderScript.md)
* [Recorder types and properties](RecorderProperties.md)
Expand Down
4 changes: 2 additions & 2 deletions Documentation~/aov-concepts.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Record AOVs
# Record Arbitrary Output Variables (AOVs)

AOV recording is a process that extracts specific render pass data from the Scene that a Camera views. This mainly includes render passes related to the material, geometry, depth, motion, and lighting response of the GameObjects in the Scene.
Arbitrary Output Variable (AOV) recording is a process that extracts specific render pass data from the Scene that a Camera views. This mainly includes render passes related to the material, geometry, depth, motion, and lighting response of the GameObjects in the Scene.

You can use AOV outputs, for example, for further image compositing in an external dedicated tool.

Expand Down
3 changes: 2 additions & 1 deletion Documentation~/aov-recorder-properties.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# AOV Image Sequence Recorder properties

Use the AOV Image Sequence Recorder properties to select an AOV or multiple AOVs to export, choose a source camera, and configure how the AOV passes are recorded and saved.
Use the AOV Image Sequence Recorder properties to select one or multiple [Arbitrary Output Variables (AOVs) to export](aov-concepts.md), choose a source camera, and configure how the AOV passes are recorded and saved.

![](Images/aov-recorder-window.png)
<br />_AOV Image Sequence Recorder properties in the Recorder window context._
Expand All @@ -19,6 +19,7 @@ Select the AOVs to record according to your needs.
The following sections describe the exportable AOVs grouped in categories, including the type of data recorded in each frame and the meaning behind the value of a single pixel for each specific AOV.

#### Beauty

| AOV | Recorded data | Pixel value |
|:---|:---|:---|
| **Beauty** | The final rendered view after post-process. | RGB color. |
Expand Down
4 changes: 2 additions & 2 deletions Documentation~/concepts-and-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The Recorder package allows you to [set up a recording session with one or multi

The entry point for this type of scenario is the [Recorder window](RecordingRecorderWindow.md), where you set up a single [recording session](RecorderWindowRecordingProperties.md) and a [recorder list](RecorderManage.md) that can include one or several recorders.

The Recorder list can include recorders of different types or recorders of the same type but with different settings. When using the Recorder window, all recorders of the list share the same recording session properties, which makes all recordings start and stop simultaneously and share the same recording frame rate.
The Recorder list can include recorders of different types or recorders of the same type but with different settings. When using the Recorder window, all recorders of the list share the same recording session properties, which makes all recordings start and stop synchronously and share the same recording frame rate.

### Multiple recordings triggered from Timeline

Expand All @@ -41,7 +41,7 @@ The Recorder package includes the following recorder types by default:
| [**Movie Recorder**](RecorderMovie.md) | [Generates a video](RecordingVideo.md) in H.264 MP4, VP8 WebM, or ProRes QuickTime format. Also allows to [generate animated GIF files](RecordingAnimatedGIF.md). |
| [**Image Sequence Recorder**](RecorderImage.md) | Generates a sequence of image files in JPEG, PNG, or EXR (OpenEXR) format. |
| [**Audio Recorder**](RecorderAudio.md) | Generates an audio clip in WAV format. |
| [**AOV Image Sequence Recorder**](aov-recorder-properties.md) | Generates a sequence of image files in PNG or EXR (OpenEXR) format to [capture specific render pass data for further compositing](aov-concepts.md) (for example, data related to materials, geometry, depth, motion, or lighting) in projects that use Unity's [HDRP (High Definition Render Pipeline)](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest). |
| [**AOV Image Sequence Recorder**](aov-recorder-properties.md) | Generates a sequence of image files in PNG or EXR (OpenEXR) format to capture [Arbitrary Output Variable (AOV) render pass data](aov-concepts.md) for further compositing (for example, data related to materials, geometry, depth, motion, or lighting) in projects that use Unity's [HDRP (High Definition Render Pipeline)](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest). |

## Additional recorder types available with other packages

Expand Down
Loading

0 comments on commit 98f9fc8

Please sign in to comment.