Point, spot, directional and area lighting. More...
#include <ilight.h>
Public Member Functions | |
Light properties | |
virtual Light_type | get_type () const =0 |
Returns the light type. More... | |
virtual void | set_type (Light_type type)=0 |
Sets the light type. More... | |
virtual Light_area_shape | get_area_shape () const =0 |
Returns the area light shape. More... | |
virtual void | set_area_shape (Light_area_shape light_area_shape)=0 |
Sets the area light shape. More... | |
virtual Float64 | get_area_radius () const =0 |
Returns the radius of the area for area lights. More... | |
virtual void | set_area_radius (Float64 radius)=0 |
Sets the radius of the area for area lights. More... | |
virtual Float64 | get_area_size_x () const =0 |
Returns the size of the area in x direction for area lights. More... | |
virtual void | set_area_size_x (Float64 size_x)=0 |
Sets the size of the area in x direction for area lights. More... | |
virtual Float64 | get_area_size_y () const =0 |
Returns the size of the area in y direction for area lights. More... | |
virtual void | set_area_size_y (Float64 size_y)=0 |
Sets the size of the area in y direction for area light types. More... | |
Methods related to the bounding box | |
virtual Bbox3_struct | get_bbox () const =0 |
Returns the bounding box of the light. More... | |
virtual Bbox3_struct | get_tight_bbox (const Float64_4_4_struct &transformation_matrix) const =0 |
Returns the bounding box of the light after transformation. 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< 0xc9a437cf, ... > | |
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< 0xc9a437cf, ... > | |
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... | |
Point, spot, directional and area lighting.
All lights are positioned at the origin of the local light space and point down the negative z
-axis, like the camera. This differs from some traditional scene description formats, in which a light can have an origin, a direction, and possibly other orientation vectors. Instead, the Iray SDK uses transformations to express these properties.
For directional lights, the (transformed) position is irrelevant. The traditional use of a directional light is as an approximation of the rays of the sun, which is at such a great distance to the earth that at human scale the light rays are effectively parallel.
In addition, the Iray SDK provides the ability to specify an emission distribution function in a material. In this way, any object can be a source of light emission, but may also have reflective and transmissive properties as well.
See also "Environment dome".
|
pure virtual |
Returns the radius of the area for area lights.
This value is only meaningful for lights of type mi::neuraylib::AREA_DISC, mi::neuraylib::AREA_SPHERE, and mi::neuraylib::AREA_CYLINDER.
|
pure virtual |
Returns the area light shape.
|
pure virtual |
Returns the size of the area in x direction for area lights.
This value is only meaningful for lights of type mi::neuraylib::AREA_RECTANGLE and mi::neuraylib::AREA_CYLINDER. For cylindrical area lights, this value is half of the height of the cylinder.
|
pure virtual |
Returns the size of the area in y direction for area lights.
This value is only meaningful for lights of type mi::neuraylib::AREA_RECTANGLE.
|
pure virtual |
Returns the bounding box of the light.
|
pure virtual |
Returns the bounding box of the light after transformation.
transformation_matrix | The world-to-object space transformation matrix that is applied to the object before the bounding box is computed. |
|
pure virtual |
Returns the light type.
|
pure virtual |
Sets the radius of the area for area lights.
This value is only meaningful for lights of type mi::neuraylib::AREA_DISC, mi::neuraylib::AREA_SPHERE, and mi::neuraylib::AREA_CYLINDER.
|
pure virtual |
Sets the area light shape.
|
pure virtual |
Sets the size of the area in x direction for area lights.
This value is only meaningful for lights of type mi::neuraylib::AREA_RECTANGLE and mi::neuraylib::AREA_CYLINDER. For cylindrical area lights, this value is half of the height of the cylinder.
|
pure virtual |
Sets the size of the area in y direction for area light types.
This value is only meaningful for lights of type mi::neuraylib::AREA_RECTANGLE.
|
pure virtual |
Sets the light type.