Osl Programming Nodes

by Tim Zoet in Materials, Shaders, Textures

OSL Programming Nodes

Support for the Open Shading Language was added to Blender quite a while ago already. Few people have taken the hurdle of learning to program, despite the fact that OSL allows you to create incredibly advanced materials that are impossible to create using Cycles.

But not any more! The OSL Programming Nodes add-on makes it possible to program... without programming! Use an advanced node system to create materials and let the add-on do the most difficult job: generating OSL code. All you need to do is press a button and then you've got a completely valid OSL script.

Features

Almost the complete OSL API is supported by this add-on.

  • Code generation: From nodes to code by pressing only a single button. You don't need to write a single line of code!
  • Functions: Group nodes using functions, the more powerful version of Cycles' nodegroups.
  • Loops: Execute nodes or functions multiple times in a row.
  • Conditional execution: Execute a node or function based on a condition, either defined by the user or based on some complex combination of other nodes.
  • Ray tracing: Trace rays to probe the geometry around a point that is being shaded to create complex material interactions.
  • New texture types: OSL adds support for new textures, that even allow a 4th texture coordinate to create animated procedural textures.
  • And more: Advanced geometric operations, the Multiply Shader node, new mathematical operators...

Excellent Documentation

A complete overview of all nodes in text form and for those who can't read there even are video tutorials covering the core concepts of programming with nodes!

Product Updates

Version 1.2

  • Updated the TextureBlur example to use a Dynamic Loop node to control the number of iterations (and quality) of the blur.
  • New nodetrees autmatically get an Input and Output node.
  • The ‘use fake user’ of new nodetrees is automatically set.
  • Prevent Blender from deselecting nodetrees when you switch between tree types.
  • Added a button to all If/Loop/Function nodes to create a new nodetree if no tree is selected.
  • Added a button to all If/Loop/Function nodes to view the selected nodetree.
  • The sockets of Input and Output nodes can now be moved up and down.
  • Fixed several bugs related to the function nodes and trees.

Version 1.1

  • Added the Perlin Periodic Noise Texture node.
  • Added the Volume Absorption and Volume Scatter shader nodes.
  • Added the Step, Smooth Step, Linear Step, and Smooth Linear Step interpolation nodes.
  • Added the Dynamic Loop node.
  • Fixed several minor bugs.