7#ifndef HDX_VISUALIZE_AOV_TASK_H
8#define HDX_VISUALIZE_AOV_TASK_H
12#include "pxr/imaging/hdx/api.h"
13#include "pxr/imaging/hdx/task.h"
14#include "pxr/imaging/hdx/tokens.h"
15#include "pxr/imaging/hgi/attachmentDesc.h"
16#include "pxr/imaging/hgi/buffer.h"
17#include "pxr/imaging/hgi/graphicsPipeline.h"
18#include "pxr/imaging/hgi/resourceBindings.h"
19#include "pxr/imaging/hgi/shaderProgram.h"
20#include "pxr/imaging/hgi/texture.h"
21#include "pxr/usd/sdf/path.h"
23PXR_NAMESPACE_OPEN_SCOPE
53 void Prepare(HdTaskContext* ctx,
57 void Execute(HdTaskContext* ctx)
override;
63 HdDirtyBits* dirtyBits)
override;
81 bool _UpdateVizKernel(
TfToken const &aovName);
84 TfToken const& _GetTextureIdentifierForShader()
const;
87 TfToken const& _GetFragmentMixin()
const;
91 bool _CreateShaderResources(
HgiTextureDesc const& inputAovTextureDesc);
94 bool _CreateBufferResources();
103 bool _CreateSampler();
106 bool _CreateOutputTexture(
GfVec3i const &dimensions);
109 void _DestroyShaderProgram();
112 void _PrintCompileErrors();
123 GfVec3i _outputTextureDimensions;
134 float _screenSize[2];
135 float _minMaxDepth[2];
136 VizKernel _vizKernel;
167PXR_NAMESPACE_CLOSE_SCOPE
Basic type for a vector of 3 int components.
The Hydra render index is a flattened representation of the client scene graph, which may be composed...
Adapter class providing data exchange with the client scene graph.
Base class for (some) tasks in Hdx that provides common progressive rendering and Hgi functionality.
A task for visualizing non-color AOVs such as depth, normals, primId.
A path value used to locate objects in layers or scenegraphs.
Token for efficient comparison, assignment, and hashing of known strings.
GF_API std::ostream & operator<<(std::ostream &, const GfBBox3d &)
Output a GfBBox3d using the format [(range) matrix zeroArea].
aovName: The name of the aov to visualize.
Describes the properties of a framebuffer attachment.
Describes the properties needed to create a GPU texture.