Leaf nodes of the scene graph, for example, geometry, lights, or cameras. More...
Classes | |
class | mi::neuraylib::IAttribute_vector |
Interface representing an attribute vector for triangle meshes, polygon meshes, and subdivision surfaces. More... | |
class | mi::neuraylib::ICamera |
The camera defines the viewpoint from which the scene is rendered. More... | |
class | mi::neuraylib::IFibers |
Interface representing a collection of fibers. More... | |
class | mi::neuraylib::IFreeform_surface |
Interface representing a freeform surface. More... | |
class | mi::neuraylib::ISurface |
A surface of a freeform surface. More... | |
class | mi::neuraylib::ICurve |
A curve used by freeform surfaces. More... | |
class | mi::neuraylib::ICurve_segment |
A curve segment used by freeform surfaces. More... | |
class | mi::neuraylib::ITexture_surface |
A texture surface associated with freeform surfaces. More... | |
class | mi::neuraylib::ILight |
Point, spot, directional and area lighting. More... | |
class | mi::neuraylib::IOn_demand_mesh |
Interface representing an on-demand mesh. More... | |
class | mi::neuraylib::IOn_demand_mesh_callback |
Abstract interface for callbacks used by on-demand meshes. More... | |
class | mi::neuraylib::IOptions |
A scene element that stores scene-specific settings. More... | |
class | mi::neuraylib::IParticles |
Interface representing a collection of particles. More... | |
class | mi::neuraylib::IPolygon_connectivity |
A connectivity class for polygon mesh geometry and their attributes. More... | |
class | mi::neuraylib::IPolygon_mesh |
Interface representing a polygon mesh. More... | |
class | mi::neuraylib::ISimple_mesh |
Interface representing the geometry of on-demand meshes. More... | |
class | mi::neuraylib::ISubdivision_surface |
Interface representing a subdivision surface. More... | |
struct | mi::neuraylib::Triangle_point_indices_struct |
A triangle defined by three point indices, starting at index 0. More... | |
class | mi::neuraylib::Triangle_point_indices |
A triangle defined by three point indices, starting at index 0. More... | |
class | mi::neuraylib::ITriangle_connectivity |
A connectivity class for triangle mesh geometry and their attributes. More... | |
class | mi::neuraylib::ITriangle_mesh |
Interface representing a triangle mesh. More... | |
class | mi::neuraylib::IVolume |
Interface representing a top-level volume. More... | |
Variables | |
Int_type | mi::neuraylib::Identifier_struct<name, Int_type>::m_id |
The handle ID. More... | |
Leaf nodes of the scene graph, for example, geometry, lights, or cameras.
Handle for curve
Handle for curves
This POD type is the underlying storage class for mi::neuraylib::Curve_handle.
Handle for curve segments
Handle for curve segments
This POD type is the underlying storage class for mi::neuraylib::Curve_segment_handle.
Handle for fibers
Handle for fibers
This POD type is the underlying storage class for mi::neuraylib::Fiber_handle.
Handle for polygons
Handle for polygons
This POD type is the underlying storage class for mi::neuraylib::Polygon_handle.
Handle for surfaces
Handle for surfaces
This POD type is the underlying storage class for mi::neuraylib::Surface_handle.
Handle for texture surfaces
Handle for texture surfaces
This POD type is the underlying storage class for mi::neuraylib::Texture_surface_handle.
Handle for triangles
Handle for triangles
This POD type is the underlying storage class for mi::neuraylib::Triangle_handle.
Symbolic constants for different connectivity types.
Connectivities may come in different types. Currently, there is only one type.
Different attribute vector types for mi::neuraylib::IFibers.
Enumerator | |
---|---|
FIBER_ATTRIBUTE_PER_PRIMITIVE | Per-fiber attribute. |
FIBER_ATTRIBUTE_PER_VERTEX | Per-control point attribute. |
Different fiber types of mi::neuraylib::IFibers.
Enumerator | |
---|---|
FIBER_TYPE_BSPLINE | Uses cubic uniform B-Splines. |
FIBER_TYPE_CATMULL_ROM | Uses Catmull-Rom splines. |
FIBER_TYPE_LINEAR | Uses linear curves. |
FIBER_TYPE_BEZIER | Uses cubic Bezier curves. |
Symbolic constants for mesh attributes.
Mesh attributes are an extension of the regular attributes (see mi::neuraylib::IAttribute_set). They are only supported for scene elements that represent geometry, namely triangle meshes, polygon meshes, subdivision surfaces, and freeform surfaces. In contrast to regular attributes which exist only once per object, mesh attributes are always a vector of values with one vector element per primitive, per point, or per vertex. Note that a vector element in itself can be an array.
Mesh attributes are identified by the symbolic names of this enum. Note that there are mi::neuraylib::ATTR_TEXTURE_NUM mesh attributes for texture spaces, but not all values exist as explicit enum values. In order to use these textures spaces, you need to cast the corresponding integer in the range mi::neuraylib::ATTR_TEXTURE to mi::neuraylib::ATTR_TEXTURE + mi::neuraylib::ATTR_TEXTURE_NUM - 1 to mi::neuraylib::Mesh_attribute_name.
One mesh attribute, mi::neuraylib::ATTR_MATERIAL_INDEX, stores one vector element per primitive. That is, there is one material index for each triangle, quad, or polygon of the mesh. This attribute can be created, accessed, and edited directly from the corresponding mesh interfaces.
The remaining attributes store one vector element either per point or per vertex of the mesh. These attributes cannot be created, accessed, and edited directly from the corresponding mesh interfaces, only from a connectivity (either from the mesh connectivity, or from a custom connectivity). The connectivity maps each vertex of the mesh to an index which is used to look up the corresponding vector element. If the mesh connectivity is used, the attribute vector stores one element per point (since the mesh connectivity already defines the mapping of vertices to points). For a custom connectivity, the attribute vector allows to store one element per vertex (possibly sharing values between vertices as defined by the connectivity).
Enumerator | |
---|---|
ATTR_NORMAL | Surface normals of type mi::Float32_3 per point or per vertex. |
ATTR_MOTION | Motion vectors of type mi::Float32_3[] per point or per vertex. The array size is chosen when the attribute vector is created. An array size of N splits the time interval \[0, 1\] into N segments of equal length where the motion vector at the beginning of the first segment is not explicitly given here, but zero everywhere by convention. The N motion vectors (per point or vertex) define the position of the vertices at the end of the N segments. Intermediate positions are obtained by linear interpolation. Positions outside the interval \[0, 1\] are obtained by linear extrapolation. If the entire mesh is transformed uniformly, then time-dependent transformations on instances are more efficient than motion vectors (see #mi::neuraylib::IInstance). \see #mi::neuraylib::IOptions::get_shutter_open(), #mi::neuraylib::IOptions::get_shutter_close(), #mi::neuraylib::IInstance |
ATTR_DERIVATIVES | Surface derivatives of type mi::Float32_3[2] per point or per vertex. |
ATTR_MATERIAL_INDEX | Material index of type mi::Uint32 per primitive. \note For best performance it is recommended to sort the primitives by their material index such that when looping over all primitives the material index changes as infrequently as possible. |
ATTR_TEXTURE | Texture coordinates of type mi::Float32[] per point or per vertex (also called texture space). The array size is chosen when the attribute vector is created.
|
ATTR_TEXTURE_NUM | Total number of supported texture spaces. |
ATTR_USER | User data values of type mi::Float32[] per point or per vertex. The array size is chosen when the attribute vector is created.
|
ATTR_USER_NUM | Total number of supported user data arrays. |
ATTR_MAX | Maximum legal attribute number + 1. |
Different particle types of mi::neuraylib::IParticles.
Enumerator | |
---|---|
PARTICLE_TYPE_SPHERE | Sphere. |
Vertex features.
Currently, two vertex features are supported, smooth vertices (the default) and corners.
Enumerator | |
---|---|
SMOOTH_VERTEX | the vertex is smooth (the default) |
CORNER_VERTEX | the vertex is a corner |
|
inline |
Default constructor. Initializes handle with invalid value.
|
inline |
Constructor from underlying storage type.
|
inlineexplicit |
Constructor. Initializes handle with given integer value.
|
inline |
Returns whether the handle is valid.
|
inline |
Conversion operator to underlying integer type.
|
inline |
Dereferences the handle. Returns its integer value.
|
inline |
Pre-increment operator.
|
inline |
Post-increment operator.
|
inline |
Pre-decrement operator.
|
inline |
Post-decrement operator.
|
inline |
Less-than operator.
|
inline |
Less-than-or-equal-to operator.
|
inline |
Greater-than operator.
|
inline |
Greater-than-or-equal-to operator.
Int_type mi::neuraylib::Identifier_struct<name, Int_type>::m_id |
The handle ID.