Irradiance probes are used to render the irradiance at certain locations in the scene. More...
#include <iirradiance_probes.h>
Public Member Functions | |
virtual void | set_length (Size size)=0 |
Sets the number of probes,. More... | |
virtual Size | get_length () const =0 |
Returns the number of probes. More... | |
virtual Sint32 | set_probe (Size index, const Float32_3_struct &position, const Float32_3_struct &normal)=0 |
Sets the probe data for the probe at index . More... | |
virtual Sint32 | get_probe (Size index, Float32_3_struct &position, Float32_3_struct &normal) const =0 |
Returns the probe data for the probe at index . More... | |
Public Member Functions inherited from mi::neuraylib::IScene_element | |
virtual Element_type | get_element_type () const =0 |
Indicates the actual scene element represented by interfaces derived from this interface. More... | |
Public Member Functions inherited from mi::neuraylib::IAttribute_set | |
virtual IData * | create_attribute (const char *name, const char *type)=0 |
Creates a new attribute name of the type type . More... | |
template<class T> | |
T * | create_attribute (const char *name, const char *type) |
Creates a new attribute name of the type type . More... | |
template<class T> | |
T * | create_attribute (const char *name) |
Creates a new attribute name of the type T . More... | |
virtual bool | destroy_attribute (const char *name)=0 |
Destroys the attribute name . More... | |
virtual const IData * | access_attribute (const char *name) const =0 |
Returns a const pointer to the attribute name . More... | |
template<class T> | |
const T * | access_attribute (const char *name) const |
Returns a const pointer to the attribute name . More... | |
virtual IData * | edit_attribute (const char *name)=0 |
Returns a mutable pointer to the attribute name . More... | |
template<class T> | |
T * | edit_attribute (const char *name) |
Returns a mutable pointer to the attribute name . More... | |
virtual bool | is_attribute (const char *name) const =0 |
Indicates existence of an attribute. More... | |
virtual const char * | get_attribute_type_name (const char *name) const =0 |
Returns the type of an attribute. More... | |
virtual Sint32 | set_attribute_propagation (const char *name, Propagation_type value)=0 |
Sets the propagation type of the attribute name . More... | |
virtual Propagation_type | get_attribute_propagation (const char *name) const =0 |
Returns the propagation type of the attribute name . More... | |
virtual const char * | enumerate_attributes (Sint32 index) const =0 |
Returns the name of the attribute indicated by index . More... | |
Public Member Functions inherited from mi::base::IInterface | |
virtual Uint32 | retain () const =0 |
Increments the reference count. More... | |
virtual Uint32 | release () const =0 |
Decrements the reference count. More... | |
virtual const IInterface * | get_interface (const Uuid &interface_id) const =0 |
Acquires a const interface from another. More... | |
template<class T> | |
const T * | get_interface () const |
Acquires a const interface from another. More... | |
virtual IInterface * | get_interface (const Uuid &interface_id)=0 |
Acquires a mutable interface from another. More... | |
template<class T> | |
T * | get_interface () |
Acquires a mutable interface from another. More... | |
virtual Uuid | get_iid () const =0 |
Returns the interface ID of the most derived interface. More... | |
Additional Inherited Members | |
Public Types inherited from mi::base::Interface_declare< 0x566166f0, ... > | |
typedef Interface_declare< id1, ... > | Self |
Own type. More... | |
typedef Uuid_t< id1, ... > | IID |
Declares the interface ID (IID) of this interface. More... | |
Public Types inherited from mi::base::Interface_declare< 0x8a2a4da9, ... > | |
typedef Interface_declare< id1, ... > | Self |
Own type. More... | |
typedef Uuid_t< id1, ... > | IID |
Declares the interface ID (IID) of this interface. More... | |
Public Types inherited from mi::base::Interface_declare< 0x1bcb8d48, ... > | |
typedef Interface_declare< id1, ... > | Self |
Own type. More... | |
typedef Uuid_t< id1, ... > | IID |
Declares the interface ID (IID) of this interface. More... | |
Public Types inherited from mi::base::IInterface | |
typedef Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> | IID |
Declares the interface ID (IID) of this interface. More... | |
Static Public Member Functions inherited from mi::base::Interface_declare< 0x566166f0, ... > | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
Static Public Member Functions inherited from mi::base::Interface_declare< 0x8a2a4da9, ... > | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
Static Public Member Functions inherited from mi::base::Interface_declare< 0x1bcb8d48, ... > | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
Static Public Member Functions inherited from mi::base::IInterface | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface. More... | |
Irradiance probes are used to render the irradiance at certain locations in the scene.
Rendering of irradiance probes is different from the usual rendering of buffers, like for example "result"
or "normal"
. In particular, the orientation of the camera is irrelevant. Instead, locations of so-called irradiance probes are explicitly specified by this scene element which is attached to the camera (see mi::neuraylib::ICamera::set_irradiance_probes()).
To actually render the irradiance using these irradiance probes the render target needs to contain a canvas named "irradiance_probe"
with pixel type "Rgb_fp"
. The product of the canvas resolution in x and y direction needs to match the number of irradiance probes. The irradiance probes are mapped to the canvas pixels in row-major order.
|
pure virtual |
Returns the number of probes.
|
pure virtual |
Returns the probe data for the probe at index
.
index | The probe to be queried. | |
[out] | position | The position of the probe. |
[out] | normal | The normal of the probe. |
index
is out of bounds.
|
pure virtual |
Sets the number of probes,.
Newly created elements are default-initialized.
|
pure virtual |
Sets the probe data for the probe at index
.
The given normal
need not be unit length. It will be normalized internally. If a zero vector is provided, irradiance will be estimated over all incoming directions around position
, rather than for the projected hemisphere.
index | The probe to be modified. |
position | The new position of the probe. |
normal | The new normal of the probe. |
index
is out of bounds.