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.

Included with the product is extensive documentation. This documentation focuses on the technicalities of the add-on. If you prefer a more hands-on approach, you can watch several video tutorials that can be found on my YouTube channel. These videos will also give you an idea of what you can do with the add-on.

Will my materials work in other render engines that support OSL?

That depends. Blender itself does not fully/correctly implement the OSL specification and neither do most other render engines. Although most features might be available, some of the best ones (such as the animated textures and ray tracing) are often only partially implemented.

Why does this add-on not support GPU rendering?

Unfortunately, the Blender developers have only implemented the OSL specification for CPU rendering. GPU rendering is very hard to implement and the Cycles render engine has got priority.

Will my materials work in other render engines that support OSL?

That depends. Blender itself does not fully/correctly implement the OSL specification and neither do most other render engines. Although most features might be available, some of the best ones (such as the animated textures and ray tracing) are often only partially implemented.

Why does this add-on not support GPU rendering?

Unfortunately, the Blender developers have only implemented the OSL specification for CPU rendering. GPU rendering is very hard to implement and the Cycles render engine has got priority.

Will my materials work in other render engines that support OSL?

That depends. Blender itself does not fully/correctly implement the OSL specification and neither do most other render engines. Although most features might be available, some of the best ones (such as the animated textures and ray tracing) are often only partially implemented.

Why does this add-on not support GPU rendering?

Unfortunately, the Blender developers have only implemented the OSL specification for CPU rendering. GPU rendering is very hard to implement and the Cycles render engine has got priority.

Why does this add-on not support GPU rendering?

Unfortunately, the Blender developers have only implemented the OSL specification for CPU rendering. GPU rendering is very hard to implement and the Cycles render engine has got priority.

Item Rating

This item has an average rating of 5 from 2 ratings by the community.

50%
50%
0%
0%
0%
  • 91d5db1e6e366f51448958fe2213d38e

    Patrick Hertel 6 months ago

    While it does make the "programming" of OSL easier it is still, I believe, a Work In Progress.
    To learn it I have been trying the app in parallel with "Open Shading Language for Blender .." by Michel Anders and while I can accomplish the equivalent of some of the examples it's not so straight forward. OSL Programming Nodes, as far as I can figure has no "Break" inside a loop for example and a for loop like say "for(x=-1; x

  • Aaa8dc07995df793fa446211a75057ac

    Ellie 8 months ago

    The best addon. EVER. For realz. Thank you!!!

Purchase this item to leave a review!