githubEdit

Inline

Example

Here's a basic example of an inline function that adds two numbers:

add = def(x, y) -> (
  return x + y
)

// Usage
result = add(5.0, 3.0)

In this example, add is an inline function that takes two arguments, x and y, and returns their sum. This function can be called multiple times throughout your shader code to perform addition operations.

Functions as arguments

In osl you can use a function as arguments for other functions, methods and commands. This allows for powerful new syntax such as the .map() method which iterates over each item in an array and overwrites it based on the function it is passed as argument.

arr = [1,2,3,4,5]

log arr.map(def(item) -> (
  return item * 2
  // set each item to itself * 2
))

// [2,4,6,8,10]

You can also define a function earlier and then pass it as input

Last updated