HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UsdAppUtilsFrameRecorder Class Reference

#include <frameRecorder.h>

Public Member Functions

USDAPPUTILS_API UsdAppUtilsFrameRecorder (const TfToken &rendererPluginId=TfToken(), bool gpuEnabled=true, const SdfPath &renderSettingsPrimPath=SdfPath())
 
TfToken GetCurrentRendererId () const
 
bool SetRendererPlugin (const TfToken &id)
 
void SetImageWidth (const size_t imageWidth)
 
void SetComplexity (const float complexity)
 
USDAPPUTILS_API void SetColorCorrectionMode (const TfToken &colorCorrectionMode)
 
USDAPPUTILS_API void SetIncludedPurposes (const TfTokenVector &purposes)
 
USDAPPUTILS_API bool Record (const UsdStagePtr &stage, const UsdGeomCamera &usdCamera, const UsdTimeCode timeCode, const std::string &outputImagePath)
 

Detailed Description

A utility class for recording images of USD stages.

UsdAppUtilsFrameRecorder uses Hydra to produce recorded images of a USD stage looking through a particular UsdGeomCamera on that stage at a particular UsdTimeCode. The images generated will be effectively the same as what you would see in the viewer in usdview.

Note that it is assumed that an OpenGL context has already been setup for the UsdAppUtilsFrameRecorder if OpenGL is being used as the underlying HGI device. This is not required for Metal or Vulkan.

Definition at line 57 of file frameRecorder.h.

Constructor & Destructor Documentation

USDAPPUTILS_API UsdAppUtilsFrameRecorder::UsdAppUtilsFrameRecorder ( const TfToken rendererPluginId = TfToken(),
bool  gpuEnabled = true,
const SdfPath renderSettingsPrimPath = SdfPath() 
)

The rendererPluginId argument indicates the renderer plugin that Hyrda should use. If the empty token is passed in, a default renderer plugin will be chosen depending on the value of gpuEnabled. The gpuEnabled argument determines if the UsdAppUtilsFrameRecorder instance will allow Hydra to use the GPU to produce images. The renderSettingsPrimPath argument is used to set the active render settings prim path in Hydra.

Member Function Documentation

TfToken UsdAppUtilsFrameRecorder::GetCurrentRendererId ( ) const
inline

Gets the ID of the Hydra renderer plugin that will be used for recording.

Definition at line 75 of file frameRecorder.h.

USDAPPUTILS_API bool UsdAppUtilsFrameRecorder::Record ( const UsdStagePtr &  stage,
const UsdGeomCamera usdCamera,
const UsdTimeCode  timeCode,
const std::string outputImagePath 
)

Records an image and writes the result to outputImagePath.

The recorded image will represent the view from usdCamera looking at the imageable prims on USD stage stage at time timeCode.

If usdCamera is not a valid camera, a camera will be computed to automatically frame the stage geometry.

When we are using a RenderSettings prim, the generated image will be written to the file indicated on the connected RenderProducts, instead of the given outputImagePath. Note that in this case the given usdCamera will later be overridden by the one authored on the RenderSettings Prim.

Returns true if the image was generated and written successfully, or false otherwise.

USDAPPUTILS_API void UsdAppUtilsFrameRecorder::SetColorCorrectionMode ( const TfToken colorCorrectionMode)

Sets the color correction mode to be used for recording.

By default, color correction is disabled.

void UsdAppUtilsFrameRecorder::SetComplexity ( const float  complexity)
inline

Sets the level of refinement complexity.

The default complexity is "low" (1.0).

Definition at line 109 of file frameRecorder.h.

void UsdAppUtilsFrameRecorder::SetImageWidth ( const size_t  imageWidth)
inline

Sets the width of the recorded image.

The height of the recorded image will be computed using this value and the aspect ratio of the camera used for recording.

The default image width is 960 pixels.

Definition at line 98 of file frameRecorder.h.

USDAPPUTILS_API void UsdAppUtilsFrameRecorder::SetIncludedPurposes ( const TfTokenVector purposes)

Sets the UsdGeomImageable purposes to be used for rendering

We will always include "default" purpose, and by default, we will also include UsdGeomTokens->proxy. Use this method to explicitly enumerate an alternate set of purposes to be included along with "default".

bool UsdAppUtilsFrameRecorder::SetRendererPlugin ( const TfToken id)
inline

Sets the Hydra renderer plugin to be used for recording. This also resets the presentation flag on the HdxPresentTask to false, to avoid the need for an OpenGL context.

Note that the renderer plugins that may be set will be restricted if this UsdAppUtilsFrameRecorder instance has disabled the GPU.

Definition at line 85 of file frameRecorder.h.


The documentation for this class was generated from the following file: