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