OSL Projection Node

 

The OSL Projection node is a scriptable node where users write OSL (Open Shader Language) scripts using the to define arbitrary projection types. It works similar to an OSL Texture node but connects to a projection input. OSL is a standard created by Sony Imageworks. To learn about the generic OSL standard, information is provided from the OSL Readme and PDF documentation.

 

Figure 1: Right-click on the Node Graph Editor pane and select Projections > OSL Projection node from the pop-up context menu

 

Figure 2: An OSL Projection node is connected to the projection input pin of an Image texture node

 

The customized OSL script is written into the OSL Projection node to create custom camera types. To edit the script, click on the pencil icon to go to the script editor window. If the script exists as an external .osl file, insert the .osl file into the node through the load icon. Any existing file already used within an Osl Camera node may be edited. To refresh the file and use the edits, reload the file via the reload icon.

Figure 3: The script editor window showing the initial script of the OSL Projection node

 

When an OSL Projection node is invoked in Octane’s node system, the node is provided with an initial OSL script (Figure 3):

Shader OslProjection (
output point uvw = 0)
{
uvw = point(u, v, 0);
}

 

The initial script’s declaration component includes one required output variable with output type point. The OSL I/O typepoint“ corresponds to an Octane projection attribute node (Box, Mesh UV, Spherical, Cylindrical...).

A projection shader must have one output of a point-like type. All global variables have the same meaning as within texture shaders. The output value specifies a texture coordinate.

 

For a list of OSL variable declaration Input/Output types in the OSL Specification that Octane supports, refer to the Appendix topic on OSL Implementation in Octane. To learn more about scripting within Octane using the Open Shader Language refer to The Octane OSL Guide.