HDK
|
#include <sceneDelegate.h>
Public Member Functions | |
HD_API | HdSceneDelegate (HdRenderIndex *parentIndex, SdfPath const &delegateID) |
Constructor used for nested delegate objects which share a RenderIndex. More... | |
virtual HD_API | ~HdSceneDelegate () |
HdRenderIndex & | GetRenderIndex () |
Returns the RenderIndex owned by this delegate. More... | |
SdfPath const & | GetDelegateID () const |
virtual HD_API void | Sync (HdSyncRequestVector *request) |
Synchronizes the delegate state for the given request vector. More... | |
virtual HD_API void | PostSyncCleanup () |
Options | |
virtual HD_API bool | IsEnabled (TfToken const &option) const |
Returns true if the named option is enabled by the delegate. More... | |
Rprim Aspects | |
virtual HD_API HdMeshTopology | GetMeshTopology (SdfPath const &id) |
Gets the topological mesh data for a given prim. More... | |
virtual HD_API HdBasisCurvesTopology | GetBasisCurvesTopology (SdfPath const &id) |
Gets the topological curve data for a given prim. More... | |
virtual HD_API PxOsdSubdivTags | GetSubdivTags (SdfPath const &id) |
Gets the subdivision surface tags (sharpness, holes, etc). More... | |
virtual HD_API GfRange3d | GetExtent (SdfPath const &id) |
virtual HD_API GfMatrix4d | GetTransform (SdfPath const &id) |
Returns the object space transform, including all parent transforms. More... | |
virtual HD_API bool | GetVisible (SdfPath const &id) |
Returns the authored visible state of the prim. More... | |
virtual HD_API bool | GetDoubleSided (SdfPath const &id) |
Returns the doubleSided state for the given prim. More... | |
virtual HD_API HdCullStyle | GetCullStyle (SdfPath const &id) |
Returns the cullstyle for the given prim. More... | |
virtual HD_API VtValue | GetShadingStyle (SdfPath const &id) |
Returns the shading style for the given prim. More... | |
virtual HD_API HdDisplayStyle | GetDisplayStyle (SdfPath const &id) |
virtual HD_API VtValue | Get (SdfPath const &id, TfToken const &key) |
Returns a named value. More... | |
virtual HD_API VtValue | GetIndexedPrimvar (SdfPath const &id, TfToken const &key, VtIntArray *outIndices) |
virtual HD_API HdReprSelector | GetReprSelector (SdfPath const &id) |
Returns the authored repr (if any) for the given prim. More... | |
virtual HD_API TfToken | GetRenderTag (SdfPath const &id) |
virtual HD_API VtArray< TfToken > | GetCategories (SdfPath const &id) |
Returns the prim categories. More... | |
virtual HD_API std::vector < VtArray< TfToken > > | GetInstanceCategories (SdfPath const &instancerId) |
Returns the categories for all instances in the instancer. More... | |
virtual HD_API HdIdVectorSharedPtr | GetCoordSysBindings (SdfPath const &id) |
Returns the coordinate system bindings, or a nullptr if none are bound. More... | |
virtual HD_API HdModelDrawMode | GetModelDrawMode (SdfPath const &id) |
Returns the model draw mode object for the given prim. More... | |
Motion samples | |
virtual HD_API size_t | SampleTransform (SdfPath const &id, size_t maxSampleCount, float *sampleTimes, GfMatrix4d *sampleValues) |
template<unsigned int CAPACITY> | |
void | SampleTransform (SdfPath const &id, HdTimeSampleArray< GfMatrix4d, CAPACITY > *sa) |
virtual HD_API size_t | SampleInstancerTransform (SdfPath const &instancerId, size_t maxSampleCount, float *sampleTimes, GfMatrix4d *sampleValues) |
template<unsigned int CAPACITY> | |
void | SampleInstancerTransform (SdfPath const &instancerId, HdTimeSampleArray< GfMatrix4d, CAPACITY > *sa) |
virtual HD_API size_t | SamplePrimvar (SdfPath const &id, TfToken const &key, size_t maxSampleCount, float *sampleTimes, VtValue *sampleValues) |
template<unsigned int CAPACITY> | |
void | SamplePrimvar (SdfPath const &id, TfToken const &key, HdTimeSampleArray< VtValue, CAPACITY > *sa) |
virtual HD_API size_t | SampleIndexedPrimvar (SdfPath const &id, TfToken const &key, size_t maxSampleCount, float *sampleTimes, VtValue *sampleValues, VtIntArray *sampleIndices) |
template<unsigned int CAPACITY> | |
void | SampleIndexedPrimvar (SdfPath const &id, TfToken const &key, HdIndexedTimeSampleArray< VtValue, CAPACITY > *sa) |
Instancer prototypes | |
virtual HD_API VtIntArray | GetInstanceIndices (SdfPath const &instancerId, SdfPath const &prototypeId) |
virtual HD_API GfMatrix4d | GetInstancerTransform (SdfPath const &instancerId) |
Returns the instancer transform. More... | |
virtual HD_API SdfPath | GetInstancerId (SdfPath const &primId) |
Returns the parent instancer of the given rprim or instancer. More... | |
virtual HD_API SdfPathVector | GetInstancerPrototypes (SdfPath const &instancerId) |
Path Translation | |
virtual HD_API SdfPath | GetScenePrimPath (SdfPath const &rprimId, int instanceIndex, HdInstancerContext *instancerContext=nullptr) |
virtual HD_API SdfPathVector | GetScenePrimPaths (SdfPath const &rprimId, std::vector< int > instanceIndices, std::vector< HdInstancerContext > *instancerContexts=nullptr) |
virtual HD_API SdfPath | GetDataSharingId (SdfPath const &primId) |
Material Aspects | |
virtual HD_API SdfPath | GetMaterialId (SdfPath const &rprimId) |
Returns the material ID bound to the rprim rprimId . More... | |
virtual HD_API VtValue | GetMaterialResource (SdfPath const &materialId) |
Returns the material ID bound to the rprim rprimId . More... | |
Renderbuffer Aspects | |
virtual HD_API HdRenderBufferDescriptor | GetRenderBufferDescriptor (SdfPath const &id) |
Returns the allocation descriptor for a given render buffer prim. More... | |
Light Aspects | |
virtual HD_API VtValue | GetLightParamValue (SdfPath const &id, TfToken const ¶mName) |
Camera Aspects | |
virtual HD_API VtValue | GetCameraParamValue (SdfPath const &cameraId, TfToken const ¶mName) |
Volume Aspects | |
virtual HD_API HdVolumeFieldDescriptorVector | GetVolumeFieldDescriptors (SdfPath const &volumeId) |
ExtComputation Aspects | |
virtual HD_API TfTokenVector | GetExtComputationSceneInputNames (SdfPath const &computationId) |
virtual HD_API HdExtComputationInputDescriptorVector | GetExtComputationInputDescriptors (SdfPath const &computationId) |
virtual HD_API HdExtComputationOutputDescriptorVector | GetExtComputationOutputDescriptors (SdfPath const &computationId) |
virtual HD_API HdExtComputationPrimvarDescriptorVector | GetExtComputationPrimvarDescriptors (SdfPath const &id, HdInterpolation interpolationMode) |
virtual HD_API VtValue | GetExtComputationInput (SdfPath const &computationId, TfToken const &input) |
virtual HD_API size_t | SampleExtComputationInput (SdfPath const &computationId, TfToken const &input, size_t maxSampleCount, float *sampleTimes, VtValue *sampleValues) |
template<unsigned int CAPACITY> | |
void | SampleExtComputationInput (SdfPath const &computationId, TfToken const &input, HdTimeSampleArray< VtValue, CAPACITY > *sa) |
virtual HD_API std::string | GetExtComputationKernel (SdfPath const &computationId) |
virtual HD_API void | InvokeExtComputation (SdfPath const &computationId, HdExtComputationContext *context) |
Primitive Variables | |
virtual HD_API HdPrimvarDescriptorVector | GetPrimvarDescriptors (SdfPath const &id, HdInterpolation interpolation) |
Returns descriptors for all primvars of the given interpolation type. More... | |
Task Aspects | |
virtual HD_API TfTokenVector | GetTaskRenderTags (SdfPath const &taskId) |
Adapter class providing data exchange with the client scene graph.
Definition at line 408 of file sceneDelegate.h.
HD_API HdSceneDelegate::HdSceneDelegate | ( | HdRenderIndex * | parentIndex, |
SdfPath const & | delegateID | ||
) |
Constructor used for nested delegate objects which share a RenderIndex.
|
virtual |
Returns a named value.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Gets the topological curve data for a given prim.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns a single value for a given camera and parameter. See HdCameraTokens for the list of paramters.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, HdSceneIndexAdapterSceneDelegate, and HdxFreeCameraSceneDelegate.
Returns the prim categories.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns the coordinate system bindings, or a nullptr if none are bound.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns the cullstyle for the given prim.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
Returns an identifier that can be used to share data between HdPrims during a Sync operation. Any number of HdPrims of the same type may return the same identifier. In this situation, the render delegate can choose to share information between HdPrims rather than fetching data for each HdPrim. For the UsdImagingSceneDelegate, this identifier will be the path of the GetPrototype prim for the UsdPrim correspnding to this HdPrim. Returns an empty SdfPath if this feature is no supported or the UsdPrim has no prototype. Render delegates are free to ignore this method completely if they aren't interested in the additional level of data sharing enabled by this information.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
inline |
Returns the ID of this delegate, which is used as a prefix for all objects it creates in the RenderIndex.
The default value is SdfPath::AbsoluteRootPath().
Definition at line 425 of file sceneDelegate.h.
|
virtual |
Returns the refinement level for the given prim in the range [0,8].
The refinement level indicates how many iterations to apply when subdividing subdivision surfaces or other refinable primitives.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
Returns the doubleSided state for the given prim.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns a single value for a given computation id and input token. The token may be a computation input or a computation config parameter.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
For the given computation id, returns a list of computation input descriptors.
See HdExtComputationInputDecriptor
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns the kernel source assigned to the computation at the path id. If the string is empty the computation has no GPU kernel and the CPU callback should be used.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
For the given computation id, returns a list of computation output descriptors.
See HdExtComputationOutputDescriptor
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns a list of primvar names that should be bound to a generated output from an ExtComputation for the given prim id and interpolation mode. Binding information is obtained through GetExtComputationPrimvarDesc() Returns a structure describing source information for a primvar that is bound to an ExtComputation. See HdExtComputationPrimvarDesc for the expected information to be returned.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
For the given computation id, returns a list of inputs which will be requested from the scene delegate using the Get() method.
See GetExtComputationInputDescriptors and GetExtComputationOutpuDescriptors for descriptions of other computation inputs and outputs.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
Gets the axis aligned bounds of a prim. The returned bounds are in the local space of the prim (transform is yet to be applied) and should contain the bounds of any child prims.
The returned bounds does not include any displacement that might occur as the result of running shaders on the prim.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns a named primvar value. If *outIndices is not nullptr and the primvar has indices, it will return the unflattened primvar and set *outIndices to the primvar's associated indices, clearing the array if the primvar is not indexed.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns the categories for all instances in the instancer.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Gets the extracted indices array of the prototype id used in the instancer.
example instances: 0, 1, 2, 3, 4, 5 protoypes: A, B, A, A, B, C
GetInstanceIndices(A) : [0, 2, 3] GetInstanceIndices(B) : [1, 4] GetInstanceIndices(C) : [5] GetInstanceIndices(D) : []
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
Returns the parent instancer of the given rprim or instancer.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns a list of prototypes of this instancer. The intent is to let renderers cache instance indices by giving them a complete set of prims to call GetInstanceIndices(instancer, prototype) on. XXX: This is currently unused, but may be used in the future.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns the instancer transform.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
Returns the material ID bound to the rprim rprimId
.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
Returns the material ID bound to the rprim rprimId
.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Gets the topological mesh data for a given prim.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns the model draw mode object for the given prim.
Reimplemented in UsdImagingDelegate.
|
virtual |
Returns descriptors for all primvars of the given interpolation type.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns the allocation descriptor for a given render buffer prim.
Reimplemented in HdUnitTestDelegate, and HdSceneIndexAdapterSceneDelegate.
|
inline |
Returns the RenderIndex owned by this delegate.
Definition at line 419 of file sceneDelegate.h.
Returns the render tag that will be used to bucket prims during render pass bucketing.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns the authored repr (if any) for the given prim.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Returns the scene address of the prim corresponding to the given rprim/instance index. This is designed to give paths in scene namespace, rather than hydra namespace, so it always strips the delegate ID.
Reimplemented in UsdImagingDelegate.
|
virtual |
A vectorized version of GetScenePrimPath that allows the prim adapter to amortize expensive calculations across a number of path evaluations in a single call. Note that only a single rprimId is supported. This allows this call to be forwarded directly to a single prim adapter rather than requiring a lot of data shuffling.
Reimplemented in UsdImagingDelegate.
Returns the shading style for the given prim.
Reimplemented in HdSceneIndexAdapterSceneDelegate.
|
virtual |
Gets the subdivision surface tags (sharpness, holes, etc).
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Reimplemented in HdUnitTestDelegate.
|
virtual |
Returns the object space transform, including all parent transforms.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, HdSceneIndexAdapterSceneDelegate, and HdxFreeCameraSceneDelegate.
Returns the authored visible state of the prim.
Reimplemented in HdUnitTestDelegate, UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
virtual |
Requests the scene delegate run the ExtComputation with the given id. The context contains the input values that delegate requested through GetExtComputationInputNames().
The scene delegate is expected to set each output identified by GetExtComputationOutputNames() on the context.
Hydra may invoke the computation on a different thread from what HdEngine::Execute() was called on. It may also invoke many computations in parallel.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
Returns true if the named option is enabled by the delegate.
Opportunity for the delegate to clean itself up after performing parallel work during sync phase
Reimplemented in HdSceneIndexAdapterSceneDelegate.
|
virtual |
Return up to maxSampleCount samples for a given computation id and input token. The token may be a computation input or a computation config parameter. Returns the union of the authored samples and the boundaries of the current camera shutter interval. If this number is greater than maxSampleCount, you might want to call this function again to get all the authored data.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
inline |
Convenience form of SampleExtComputationInput() that takes an HdTimeSampleArray. Returns the union of the authored samples and the boundaries of the current camera shutter interval.
Definition at line 869 of file sceneDelegate.h.
|
virtual |
SamplePrimvar() for getting an unflattened primvar and its indices. If *sampleIndices is not nullptr and the primvar has indices, it will return unflattened primvar samples in *sampleValues and the primvar's sampled indices in *sampleIndices, clearing the *sampleIndices array if the primvar is not indexed.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
void HdSceneDelegate::SampleIndexedPrimvar | ( | SdfPath const & | id, |
TfToken const & | key, | ||
HdIndexedTimeSampleArray< VtValue, CAPACITY > * | sa | ||
) |
Convenience form of SampleIndexedPrimvar() that takes HdTimeSampleArrays. This function returns the union of the authored samples and the boundaries of the current camera shutter interval.
Definition at line 962 of file sceneDelegate.h.
|
virtual |
Store up to maxSampleCount transform samples in *sampleValues. Returns the union of the authored samples and the boundaries of the current camera shutter interval. If this number is greater than maxSampleCount, you might want to call this function again to get all the authored data. Sample times are relative to the scene delegate's current time.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
inline |
Convenience form of SampleInstancerTransform() that takes an HdTimeSampleArray. This function returns the union of the authored samples and the boundaries of the current camera shutter interval.
Definition at line 600 of file sceneDelegate.h.
|
virtual |
Store up to maxSampleCount primvar samples in *samplesValues. Returns the union of the authored samples and the boundaries of the current camera shutter interval. If this number is greater than maxSampleCount, you might want to call this function again to get all the authored data.
Sample values that are array-valued will have a size described by the HdPrimvarDescriptor as applied to the toplogy.
For example, this means that a mesh that is fracturing over time will return samples with the same number of points; the number of points will change as the scene delegate is resynchronized to represent the scene at a time with different topology.
Sample times are relative to the scene delegate's current time.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
void HdSceneDelegate::SamplePrimvar | ( | SdfPath const & | id, |
TfToken const & | key, | ||
HdTimeSampleArray< VtValue, CAPACITY > * | sa | ||
) |
Convenience form of SamplePrimvar() that takes an HdTimeSampleArray. This function returns the union of the authored samples and the boundaries of the current camera shutter interval.
Definition at line 934 of file sceneDelegate.h.
|
virtual |
Store up to maxSampleCount transform samples in *sampleValues. Returns the union of the authored samples and the boundaries of the current camera shutter interval. If this number is greater than maxSampleCount, you might want to call this function again to get all the authored data. Sample times are relative to the scene delegate's current time.
Reimplemented in UsdImagingDelegate, and HdSceneIndexAdapterSceneDelegate.
|
inline |
Convenience form of SampleTransform() that takes an HdTimeSampleArray. This function returns the union of the authored transform samples and the boundaries of the current camera shutter interval.
Definition at line 561 of file sceneDelegate.h.
|
virtual |
Synchronizes the delegate state for the given request vector.
Reimplemented in HdSceneIndexAdapterSceneDelegate, and UsdImagingDelegate.