7#ifndef PXR_IMAGING_PLUGIN_HD_EMBREE_RENDER_DELEGATE_H
8#define PXR_IMAGING_PLUGIN_HD_EMBREE_RENDER_DELEGATE_H
11#include "pxr/imaging/hd/renderDelegate.h"
12#include "pxr/imaging/hd/renderThread.h"
13#include "pxr/imaging/plugin/hdEmbree/renderer.h"
17#include <embree3/rtcore.h>
19PXR_NAMESPACE_OPEN_SCOPE
23#define HDEMBREE_RENDER_SETTINGS_TOKENS \
24 (enableAmbientOcclusion) \
26 (ambientOcclusionSamples) \
103 HdRenderSettingDescriptorList
149 SdfPath const& rprimId)
override;
163 SdfPath const& sprimId)
override;
183 SdfPath const& bprimId)
override;
209 return HdTokens->full;
231 static std::mutex _mutexResourceRegistry;
232 static std::atomic_int _counterResourceRegistry;
233 static HdResourceRegistrySharedPtr _resourceRegistry;
243 RTCDevice _rtcDevice;
249 std::atomic<int> _sceneVersion;
253 std::shared_ptr<HdEmbreeRenderParam> _renderParam;
264 HdRenderSettingDescriptorList _settingDescriptors;
268 static void HandleRtcError(
void* userPtr, RTCError code,
const char *msg);
272PXR_NAMESPACE_CLOSE_SCOPE
Bprim (buffer prim) is a base class of managing a blob of data that is used to communicate between th...
Tracks changes from the HdSceneDelegate, providing invalidation cues to the render engine.
Render delegates provide renderer-specific functionality to the render index, the main hydra state ma...
bool Resume() override
Resume background rendering threads.
void DestroyRprim(HdRprim *rPrim) override
Destroy an Rprim created with CreateRprim.
bool Pause() override
Pause background rendering threads.
~HdEmbreeRenderDelegate() override
Render delegate destructor.
const TfTokenVector & GetSupportedSprimTypes() const override
Return a list of which Sprim types can be created by this class's CreateSprim.
void DestroySprim(HdSprim *sPrim) override
Destroy an Sprim created with CreateSprim or CreateFallbackSprim.
void CommitResources(HdChangeTracker *tracker) override
This function is called after new scene data is pulled during prim Sync(), but before any tasks (such...
HdBprim * CreateFallbackBprim(TfToken const &typeId) override
Create a hydra Bprim using default values, and with no scene graph binding.
HdRenderPassSharedPtr CreateRenderPass(HdRenderIndex *index, HdRprimCollection const &collection) override
Create a renderpass.
HdSprim * CreateSprim(TfToken const &typeId, SdfPath const &sprimId) override
Create a hydra Sprim, representing scene or viewport state like cameras or lights.
HdSprim * CreateFallbackSprim(TfToken const &typeId) override
Create a hydra Sprim using default values, and with no scene graph binding.
HdRprim * CreateRprim(TfToken const &typeId, SdfPath const &rprimId) override
Create a hydra Rprim, representing scene geometry.
const TfTokenVector & GetSupportedRprimTypes() const override
Return a list of which Rprim types can be created by this class's CreateRprim.
HdBprim * CreateBprim(TfToken const &typeId, SdfPath const &bprimId) override
Create a hydra Bprim, representing data buffers such as textures.
bool IsPauseSupported() const override
Return true to indicate that pausing and resuming are supported.
HdInstancer * CreateInstancer(HdSceneDelegate *delegate, SdfPath const &id) override
Create an instancer.
HdResourceRegistrySharedPtr GetResourceRegistry() const override
Returns the HdResourceRegistry instance used by this render delegate.
HdRenderParam * GetRenderParam() const override
Return this delegate's render param.
HdEmbreeRenderDelegate()
Render delegate constructor.
void DestroyInstancer(HdInstancer *instancer) override
Destroy an instancer created with CreateInstancer.
const TfTokenVector & GetSupportedBprimTypes() const override
Return a list of which Bprim types can be created by this class's CreateBprim.
HdEmbreeRenderDelegate(HdRenderSettingsMap const &settingsMap)
Render delegate constructor.
void DestroyBprim(HdBprim *bPrim) override
Destroy a Bprim created with CreateBprim or CreateFallbackBprim.
TfToken GetMaterialBindingPurpose() const override
This function tells the scene which material variant to reference.
VtDictionary GetRenderStats() const override
This function allows the renderer to report back some useful statistics that the application can disp...
HdRenderSettingDescriptorList GetRenderSettingDescriptors() const override
Returns a list of user-configurable render settings.
HdAovDescriptor GetDefaultAovDescriptor(TfToken const &name) const override
This function returns the default AOV descriptor for a given named AOV.
The render delegate can create an object of type HdRenderParam, to pass to each prim during Sync().
HdEmbreeRenderer implements a renderer on top of Embree's raycasting abilities.
This class exists to facilitate point cloud style instancing.
The Hydra render index is a flattened representation of the client scene graph, which may be composed...
The HdRenderParam is an opaque (to core Hydra) handle, to an object that is obtained from the render ...
HdRenderThread is a utility that specific render delegates can choose to use depending on their needs...
A named, semantic collection of objects.
The render engine state for a given rprim from the scene graph.
Adapter class providing data exchange with the client scene graph.
Sprim (state prim) is a base class of managing state for non-drawable scene entity (e....
A path value used to locate objects in layers or scenegraphs.
Token for efficient comparison, assignment, and hashing of known strings.
A map with string keys and VtValue values.
This file defines some macros that are useful for declaring and using static TfTokens.
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.
A bundle of state describing an AOV ("Arbitrary Output Variable") display channel.
std::vector< TfToken > TfTokenVector
Convenience types.