RibAttributesΒΆ
class RibAttributes
RibAttributes allows for overriding rendered objects Rib attributes.
When rendering, RibAttributes nodes connected to a SceneGraphNode are queried and the renderToRib method is called for each RibAttributes connected. Nodes of this class can override attributes for a whole hierarchy. Note that RibAttributes are called after Guerilla sets its own attributes, so it is still possible to override base attributes. Connected RibAttributes nodes are called in a now predefined order, so conflicts of attributes between RibAttributes will result in undefined behaviour.
In order for the RibAttributes node to be assigned to a node, you must add a dependency on the node's RibAttributes plug. For instance:
-- Find the node we want to assign attributes to
local myNode = Document:findchild ("myNode")
-- Find the attributes
local myAttributes = Document:findchild ("myAttributes")
myNode.RibAttributes:adddependencies (myAttributes.MyRibAttributesPlug)
The RibAttributes class must implement the getattributes method so attributes are correctly queried are render start, and optionally the getGLattributes in order for the openGL display to render with correct parameters.
Hierarchy
class RibAttributes < class Node
Members
| getGLattributes | ( ) | Update the openGL display attributes of the node |
| getattributes | ( ) | getattributes is called when a connected SceneGraphNode is sent to the renderer |
Inherited from class Node
string | Name | RW | The node name |
| belongstoreference | (
|
Tells if the node belongs to the reference, or a sub reference |
| delete | ( ) | Delete a node |
| eval | (
|
Called by the framework when plug (a node's plug) must be evaluated |
| findchild | (
|
Find a child node or plug using a path |
| findparent | (
|
Find the first parent Node of this Node of a specific class |
| getchild | (
|
Get a child node by its name |
| getname | ( ) | Get the Node name in its parent |
| getparent | ( ) | Get the parent Node of this Node |
| getpath | ( ) | Returns the node path as a string that can be reused with findchild |
| getreference | ( ) | Returns the reference node it is connected to |
| getreferences | (
[
|
Returns the references in the document sorted depth first. |
| getstringcopy | ( ) | Return a copy of the node and its content as a string to be pasted |
| iseditable | ( ) | Indicates if the node can be edited by the user in the UI |
| ismoveable | ( ) | Tells if the node can be moved |
| isparent | (
|
Tells if this node is parent of the potential child |
| isreference | ( ) | Tells if a node comes from a reference project |
| isselected | ( ) | Tell if the node is selected |
| loadfile | (
|
load a file content in this node. |
| loadtemplate | (
|
load a template file |
| move | (
|
Move a node to a new parent |
| onpathchanged | ( ) | Called by the framework when the name of this node or of one of its parent is modified |
| pastestringcopy | (
|
Paste a string copy into this node |
| rename | (
|
Rename a node |
| savefile | (
|
load a node to a file |
| seteditable | (
|
Change the editable state of the node |
| setflags | ( ) | Set the node flags |
Documentation
Update the openGL display attributes of the node
Override this method so the openGL display is consistent with the actual render. For example:
function MyRibAttributes:getGLattributes ()
return {
Color = {1,0,0}
}
end
getattributes is called when a connected SceneGraphNode is sent to the renderer
Override this method to sent Rib commands to the render. For example:
-- force the shader value 'Albedo' to red
attributes["variable.Albedo"] = {1,0,0}
-- force the primitive not to be subdivided
attributes["shape.subdivide"] = {0}