ShaderΒΆ

class Shader

A Shader is a Node that can evaluate itself to a program

A Shader is an composition of ShaderNodes, which can assembled to generate a program or a subpart of a program, and be executed in various contexts. For instance, a Material implements 3 different Shaders, the surface shader, the displacement shader and the line shader. A Light also implements a light shader, which is composed with the material surface shader to generate final pixel shading of the rendered objects.

Hierarchy

class Shader < class Node

Children classes : class Compositing , class EnvironmentShader , class Light , class Material , class RenderPass

Members

Methods:

ShaderNode result addnode ( string filename ) add a node into a shader by its filename
table definition getinputsdef ( ) Get the definition of the shader inputs
ShaderNode result getoutput ( string outputclass ) Get the first shader output node of the given type in the shader. If no outputclass is given, looks for "ShaderNodeOutputLight" in a light shader, "ShaderNodeOutputCompo" in a compositing, or "ShaderNodeSurface" otherwise.


Inherited from class Node

Plugs:

string Name RW The node name

Methods:

bool result belongstoreference ( Reference ref ) Tells if the node belongs to the reference, or a sub reference
nil delete ( ) Delete a node
any value eval ( Plug plug ) Called by the framework when plug (a node's plug) must be evaluated
Node|Plug child findchild ( string path ) Find a child node or plug using a path
Node parent findparent ( string name ) Find the first parent Node of this Node of a specific class
Node result getchild ( string name ) Get a child node by its name
[string|number] name getname ( ) Get the Node name in its parent
Node parent getparent ( ) Get the parent Node of this Node
string path getpath ( ) Returns the node path as a string that can be reused with findchild
Reference reference getreference ( ) Returns the reference node it is connected to
of table getreferences ( [ topref Reference ] ) Returns the references in the document sorted depth first.
string result getstringcopy ( ) Return a copy of the node and its content as a string to be pasted
boolean editable iseditable ( ) Indicates if the node can be edited by the user in the UI
bool result ismoveable ( ) Tells if the node can be moved
boolean result isparent ( Node child ) Tells if this node is parent of the potential child
boolean result isreference ( ) Tells if a node comes from a reference project
boolean state isselected ( ) Tell if the node is selected
{Node} result loadfile ( string filename ) load a file content in this node.
Node result loadtemplate ( string template , string name ) load a template file
nil move ( Node parent ) Move a node to a new parent
nil onpathchanged ( ) Called by the framework when the name of this node or of one of its parent is modified
{Node},string result,error pastestringcopy ( string copy ) Paste a string copy into this node
nil rename ( string name ) Rename a node
bool,string success,error savefile ( string filename ) load a node to a file
nil seteditable ( boolean editable ) Change the editable state of the node
nil setflags ( ) Set the node flags

Documentation

ShaderNode result addnode ( string filename )

add a node into a shader by its filename

Arguments:

  • filename The file name of the node to add

Return:

  • result The created node or nil if failed


table definition getinputsdef ( )

Get the definition of the shader inputs

This method returns a table that associates the input name to a description of the input data as { Type=type, Value=value }
Return:

  • definition The inputs definition


ShaderNode result getoutput ( string outputclass )

Get the first shader output node of the given type in the shader. If no outputclass is given, looks for "ShaderNodeOutputLight" in a light shader, "ShaderNodeOutputCompo" in a compositing, or "ShaderNodeSurface" otherwise.

Arguments:

  • outputclass The class name of the output node to find

Return:

  • result The shader output to find, or nil if none can be found.