Loading...
Searching...
No Matches
HdEmbreeUniformSampler Class Reference

This class implements the HdEmbreePrimvarSampler interface for primvars with "uniform" interpolation mode. More...

#include <meshSamplers.h>

+ Inheritance diagram for HdEmbreeUniformSampler:

Public Member Functions

 HdEmbreeUniformSampler (TfToken const &name, VtValue const &value, VtIntArray const &primitiveParams)
 Constructor.
 
 HdEmbreeUniformSampler (TfToken const &name, VtValue const &value)
 Constructor.
 
virtual bool Sample (unsigned int element, float u, float v, void *value, HdTupleType dataType) const
 Sample the primvar at an (element, u, v) location.
 
- Public Member Functions inherited from HdEmbreePrimvarSampler
 HdEmbreePrimvarSampler ()=default
 Default constructor.
 
virtual ~HdEmbreePrimvarSampler ()=default
 Default destructor.
 
virtual bool Sample (unsigned int element, float u, float v, void *value, HdTupleType dataType) const =0
 Sample the primvar at element index index and local basis coordinates u and v, writing the sample to value.
 
template<typename T >
bool Sample (unsigned int element, float u, float v, T *value) const
 

Additional Inherited Members

- Static Protected Member Functions inherited from HdEmbreePrimvarSampler
static bool _Interpolate (void *out, void **samples, float *weights, size_t sampleCount, HdTupleType dataType)
 Utility function for derived classes: combine multiple samples with blend weights: out = sum_i { samples[i] * weights[i] }.
 

Detailed Description

This class implements the HdEmbreePrimvarSampler interface for primvars with "uniform" interpolation mode.

This means that the buffer has one item per authored face. For unrefined meshes, HdEmbree will convert mesh polygons to triangles, so this class optionally takes an array called "primitiveParams" which maps from the face index embree reports to the original authored face in the scene data. If primitiveParams is not provided, this translation step is skipped.

Definition at line 120 of file meshSamplers.h.

Constructor & Destructor Documentation

◆ HdEmbreeUniformSampler() [1/2]

HdEmbreeUniformSampler ( TfToken const &  name,
VtValue const &  value,
VtIntArray const &  primitiveParams 
)
inline

Constructor.

Parameters
nameThe name of the primvar.
valueThe buffer data for the primvar.
primitiveParamsA mapping from geometry face index to authored face index.

Definition at line 127 of file meshSamplers.h.

◆ HdEmbreeUniformSampler() [2/2]

HdEmbreeUniformSampler ( TfToken const &  name,
VtValue const &  value 
)
inline

Constructor.

Parameters
nameThe name of the primvar.
valueThe buffer data for the primvar.

Definition at line 137 of file meshSamplers.h.

Member Function Documentation

◆ Sample()

virtual bool Sample ( unsigned int  element,
float  u,
float  v,
void *  value,
HdTupleType  dataType 
) const
virtual

Sample the primvar at an (element, u, v) location.

For uniform primvars, optionally look up the authored face index in _primitiveParams[element] (which is stored encoded); then return _buffer[element].

Parameters
elementThe element index to sample.
uThe u coordinate to sample.
vThe v coordinate to sample.
valueThe memory to write the value to (only written on success).
dataTypeThe HdTupleType describing element values.
Returns
True if the value was successfully sampled.

Implements HdEmbreePrimvarSampler.


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