RenderManAPI
24.0
|
Blobby Implicit Surfaces. More...
#include <RixSceneGraph.h>
Inherits Geometry.
Public Member Functions | |
virtual Error | Define (int32_t nleaf)=0 |
Define blobby implicit surfaces. More... | |
virtual RtUString | GetGeometry () const =0 |
Return geometry type. More... | |
virtual Error | SetGeometry (RtUString type)=0 |
Define special geometry. More... | |
virtual RtPrimVarList const & | GetPrimVars () const =0 |
Get primitive variable list. More... | |
virtual Error | SetPrimVars (RtPrimVarList const &primvars)=0 |
Set primitive variable list. More... | |
virtual DagType | GetDagType () const =0 |
Get the DAG type. More... | |
virtual RtUString | GetIdentifier () const =0 |
Return the DAG node identifier. More... | |
virtual Error | SetIdentifier (RtUString identifier)=0 |
Set the DAG node identifier. More... | |
virtual Error | SetTransform (unsigned numsamples, RtMatrix4x4 const *xforms, float const *times)=0 |
Set the transform. More... | |
Error | SetTransform (RtMatrix4x4 const &xform) |
Set a static transform. More... | |
virtual Error | SetTransformNumSamples (unsigned numsamples)=0 |
Set the number of transform motion samples. More... | |
virtual Error | SetTransformSample (unsigned sample, RtMatrix4x4 const &xform, float time)=0 |
Set a single transform motion sample. More... | |
Error | SetIdentity () |
Set the identity transform. More... | |
virtual unsigned | GetTransformNumSamples () const =0 |
Return the number of transform motion samples. More... | |
virtual Error | GetTransformSample (unsigned sample, RtMatrix4x4 &xform, float &time) const =0 |
Get a single transform motion sample. More... | |
virtual Error | SetHidden (int state)=0 |
Set hidden state. More... | |
virtual int | GetHidden () const =0 |
Get hidden state. More... | |
virtual Error | AddCoordinateSystem (Group *coordsys)=0 |
Add scoped coordinate system. More... | |
virtual Error | RemoveCoordinateSystem (Group *coordsys)=0 |
Remove scoped coordinate system. More... | |
virtual Error | RemoveAllCoordinateSystems ()=0 |
Remove all scoped coordinate systems. More... | |
virtual unsigned | GetNumCoordinateSystems () const =0 |
Get the number of scoped coordinate systems. More... | |
virtual Group * | GetCoordinateSystem (unsigned idx) const =0 |
Get scoped coordinate system by index. More... | |
virtual Error | AddChild (Group *child)=0 |
Add a child DAG node. More... | |
virtual Error | RemoveChild (Group *child)=0 |
Remove a child DAG node. More... | |
virtual Error | RemoveAllChildren ()=0 |
Remove all child DAG nodes. More... | |
virtual unsigned | GetNumChildren () const =0 |
Return the number of child nodes. More... | |
virtual Group * | GetChild (unsigned idx) const =0 |
Return a pointer to any child DAG nodes. More... | |
virtual unsigned | GetNumParents () const =0 |
Return the number of parent nodes. More... | |
virtual Group * | GetParent (unsigned idx) const =0 |
Return a pointer to any parent DAG nodes. More... | |
virtual Group * | FindDagNode (char const *path) const =0 |
Find a DAG node from a identifier path. More... | |
virtual Material * | GetMaterial () const =0 |
Get material binding. More... | |
virtual Error | SetMaterial (Material *material)=0 |
Set material binding. More... | |
virtual Error | OverrideMaterial (Material *material, unsigned depth, Group **path)=0 |
Override material binding. More... | |
virtual RtParamList const & | GetAttributes () const =0 |
Get attribute list. More... | |
virtual Error | SetAttributes (RtParamList const &attributes)=0 |
Set attribute list. More... | |
virtual Error | SetNested (bool state)=0 |
Set nesting state. More... | |
virtual bool | GetNested () const =0 |
Get nesting state. More... | |
virtual Error | SetInheritTransform (bool value)=0 |
Set inherit transform. More... | |
virtual bool | GetInheritTransform () const =0 |
Return inherit transform. More... | |
Protected Member Functions | |
Blobby ()=default | |
~Blobby () override=default | |
Blobby Implicit Surfaces.
|
inlineprotecteddefault |
|
overrideprotecteddefault |
Add a child DAG node.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
[in] | child | The child DAG node |
Add scoped coordinate system.
The object-to-world transformation of coordsys nodes are inherited as a named coordinate system that may be used for shading. Transformations are resolved as the closest unique relative path between this node and the coordsys node. Ambiguous instance transformations are ignored.
[in] | coordsys | The coordinate system node |
|
pure virtual |
Define blobby implicit surfaces.
Free-form self-blending implicit-function surfaces in the style of Jim Blinn's blobby molecules, Nishimura et al.'s metaballs and Wyvill, McPheeters and Wyvill's soft objects. Blobby surface may be composed of spherical and sausage-like line-segment primitives with extermely flexible control over blending. The surface type also provides for repulsion to avoid intersection with irregular ground planes, represented by depth maps.
Detail type | Size |
---|---|
constant | 1 |
uniform | 1 |
vertex | nleaf |
varying | nleaf |
facevarying | nleaf |
[in] | nleaf | Number of primitive blobs in object |
|
pure virtualinherited |
Find a DAG node from a identifier path.
Returns a DAG node based on the string identifier path relative to this node. DAG node paths should use the same separator given to Manager::CreateScene.
[in] | path | Identifier path |
|
pure virtualinherited |
Get attribute list.
Parameters that are attached to scene graph DAG nodes and may vary per geometry instance are called attributes. In the scene graph, attribute state is inherited by updating parameters along DAG hierarchies to generate the instance attribute list used for rendering. Attributes define instance properties such as visibility as well as user parameters used for instance variation when shading.
|
pure virtualinherited |
Return a pointer to any child DAG nodes.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
[in] | idx | The child index |
|
pure virtualinherited |
Get scoped coordinate system by index.
The object-to-world transformation of coordsys nodes are inherited as a named coordinate system that may be used for shading. Transformations are resolved as the closest unique relative path between this node and the coordsys node. Ambiguous instance transformations are ignored.
[in] | idx | The coordinate system index |
|
pure virtualinherited |
|
pure virtualinherited |
Return geometry type.
|
pure virtualinherited |
Get hidden state.
Hidden objects are not visible in render but may still contribute as coordinate systems. The hidden state is inherited when unspecified. The default is unspecified.
|
pure virtualinherited |
Return the DAG node identifier.
Node identifiers are concatenated along DAG hierarchies to uniquely identify DAG paths. Node identifiers themselves do not need to be unique.
|
pure virtualinherited |
Return inherit transform.
Enable or disable inheriting parent transformations when generating the object-to-world transform. The default is true.
|
pure virtualinherited |
Get material binding.
Material bindings determine the active bxdf, displacement, and light and light filter shading graph assignments. Materials bindings are inherited and may vary per instance.
|
pure virtualinherited |
Get nesting state.
Nested DAGs avoid flattening during scene transveral. This can reduce memory consumption for heavily nested structures at the cost of slower ray traversal. The default is false.
|
pure virtualinherited |
Return the number of child nodes.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
|
pure virtualinherited |
Get the number of scoped coordinate systems.
The object-to-world transformation of coordsys nodes are inherited as a named coordinate system that may be used for shading. Transformations are resolved as the closest unique relative path between this node and the coordsys node. Ambiguous instance transformations are ignored.
|
pure virtualinherited |
Return the number of parent nodes.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
|
pure virtualinherited |
Return a pointer to any parent DAG nodes.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
[in] | idx | The parent index |
|
pure virtualinherited |
Get primitive variable list.
Parameters that are attached to and may vary over surface geometry are called primitive variables. Primitive variables are used to define the intrinsic properties of a surface such as position, normal, and surface topology. Primitive variables also define values that are used for shading such as texture coordinates and user data. Primitive variables are part of the geometry prototype description and may not vary per instance. Primitive variables which are declared to be of type point, vector, normal, or matrix are specified in object space and will be transformed into current space for shading.
|
pure virtualinherited |
Return the number of transform motion samples.
Transforms are concatenated together along DAG hierarchies to generate the object-to-world transform. The motion sample count may be set independently of the actual motion sample values.
|
pure virtualinherited |
Get a single transform motion sample.
Transforms are concatenated together along DAG hierarchies to generate the object-to-world transform. Motion sample values may be set independently of the motion sample count.
[in] | sample | Motion sample index |
[out] | xform | Matrix sample |
[out] | time | Time sample |
|
pure virtualinherited |
Override material binding.
Material bindings determine the active bxdf, displacement, and light and light filter shading graph assignments. Materials bindings are inherited and may vary per instance. Material binding may be overriden based on a relative DAG path where the terminal node should be this node.
[in] | material | The material container |
[in] | depth | The DAG path depth or zero to remove all overrides. |
[in] | path | The DAG path |
|
pure virtualinherited |
Remove all child DAG nodes.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
|
pure virtualinherited |
Remove all scoped coordinate systems.
The object-to-world transformation of coordsys nodes are inherited as a named coordinate system that may be used for shading. Transformations are resolved as the closest unique relative path between this node and the coordsys node. Ambiguous instance transformations are ignored.
Remove a child DAG node.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
[in] | child | The child DAG node |
Remove scoped coordinate system.
The object-to-world transformation of coordsys nodes are inherited as a named coordinate system that may be used for shading. Transformations are resolved as the closest unique relative path between this node and the coordsys node. Ambiguous instance transformations are ignored.
[in] | coordsys | The coordinate system node |
|
pure virtualinherited |
Set attribute list.
Parameters that are attached to scene graph DAG nodes and may vary per geometry instance are called attributes. In the scene graph, attribute state is inherited by updating parameters along DAG hierarchies to generate the instance attribute list used for rendering. Attributes define instance properties such as visibility as well as user parameters used for instance variation when shading.
[in] | attributes | Attribute list |
Define special geometry.
Special geometry primitives that are renderer specific.
Detail type | Size |
---|---|
constant | 1 |
uniform | 1 |
vertex | 1 |
varying | 1 |
facevarying | 1 |
[in] | type | Supported special primitive types are: "Ri:BrickMap" |
Implemented in Quadric.
|
pure virtualinherited |
Set hidden state.
Hidden objects are visible in render but may still contribute as coordinate systems. The hidden state is inherited when unspecified. The default is unspecified.
[in] | state | Hidden state: -1 (unspecified), 0 (unhide), 1 (hide) |
Set the DAG node identifier.
Node identifiers are concatenated along DAG hierarchies to uniquely identify DAG paths. Node identifiers themselves do not need to be unique.
[in] | identifier | The DAG node identifier |
|
inlineinherited |
Set the identity transform.
Identity transforms are concatenated together along DAG hierarchies to generate the object-to-world transform.
References Group::SetTransformNumSamples().
|
pure virtualinherited |
Set inherit transform.
Enable or disable inheriting parent transformations when generating the object-to-world transform. The default is true.
[in] | value | Enable/disable inherit transform |
Set material binding.
Material bindings determine the active bxdf, displacement, and light and light filter shading graph assignments. Materials bindings are inherited and may vary per instance.
[in] | material | The material container or nullptr to unbind |
|
pure virtualinherited |
Set nesting state.
Nested DAGs avoid flattening during scene transveral. This can reduce memory consumption for heavily nested structures at the cost of slower ray traversal. The default is false.
[in] | state | Nested state |
|
pure virtualinherited |
Set primitive variable list.
Parameters that are attached to and may vary over surface geometry are called primitive variables. Primitive variables are used to define the intrinsic properties of a surface such as position, normal, and surface topology. Primitive variables also define values that are used for shading such as texture coordinates and user data. Primitive variables are part of the geometry prototype description and may not vary per instance. Primitive variables which are declared to be of type point, vector, normal, or matrix are specified in object space and will be transformed into current space for shading.
[in] | primvars | Primitive variable list |
|
pure virtualinherited |
Set the transform.
Transforms are concatenated together along DAG hierarchies to generate the object-to-world transform. Static transforms are described by a single matrix while motion transforms contain a matrix and time value per time sample.
[in] | numsamples | The number of motion samples. A zero value sets the transform to identity. |
[in] | xforms | Matrix samples pointer. This value must be valid for numsamples greater or equal to one. |
[in] | times | Time samples pointer. This value must be valid for numsamples greater or equal to two. A zero time is assumed for numsamples of one. |
Referenced by Group::SetTransform().
|
inlineinherited |
Set a static transform.
Transforms are concatenated together along DAG hierarchies to generate the object-to-world transform. Static transforms are described by a single matrix while motion transforms contain a matrix and time value per motion sample.
[in] | xform | Static matrix |
References Group::SetTransform().
|
pure virtualinherited |
Set the number of transform motion samples.
Transforms are concatenated together along DAG hierarchies to generate the object-to-world transform. The motion sample count may be set independently of the actual motion sample values.
[in] | numsamples | The number of motion samples. A zero value sets the transform to identitiy. |
Referenced by Group::SetIdentity().
|
pure virtualinherited |
Set a single transform motion sample.
Transforms are concatenated together along DAG hierarchies to generate the object-to-world transform. Motion sample values may be set independently of the motion sample count.
[in] | sample | Motion sample index |
[in] | xform | Matrix sample |
[in] | time | Time sample |