- OSL texture/projection/camera nodes
- Toon shading
- Specular reflection and refraction models
- Metal material node
- Custom LUT support in tone-mapping
- Additional response curves
- Improved clay rendering
OSL texture nodes
OSL is a programming language which can be used to create highly customized materials. In Octane you can define textures and texture mappings (projections), and you can create custom camera types using OSL shaders. Please read our OSL documentation page for more information.
Apart from textures, you may also specify custom texture projections and custom camera projections using OSL shaders.
Toon shading
Toon shading is a non-photorealistic way of depicting lighting effects. While it still shows lighting effects, it does so in a simpler way, with often large areas of flat shaded color. In Octane toon shading is controlled by toon materials and toon light sources.
Toon materials
A toon material defines the colors which will be visible on a material, and how lighting effects are rendered. Toon rendering in Octane consists of two parts: a diffuse part and a glossy highlight.
You can control the amount of detail in the shading using a toon ramp
Toon lights
Toon shading uses its own light sources, independent from any mesh emitters in the scene. This is done because with area lights you can never render sharp boundaries between different colors in the toon shader. Toon lights are not visible in the rendered image. There are two kinds of toon lights:
Point lights behave similar to small mesh lights:
Directional lights behave similar to sun light:
Specular reflection and refraction models
We introduced a 3 standard BRDF models for glossy and specular materials: GGX and Beckman microfacet models, and the Ward BRDF:
In case you are interested, Wallace gave a more detailed explanation of the new BRDF models here: viewtopic.php?p=327124#p327124
Anisotropic reflections
The new models support anisotropic roughness to model materials like brushed metal.
The direction of the anisotropy can be controlled by a texture:
Metal material node
Octane has a glossy material node, which by default emulates a diffuse surface with a clear coat. This works well for plastics. A metal material works similar to a glossy material, but the way the channels are combined is more suitable to model metals.
On the left is the result when using up a glossy material in the obvious way. To have a coloured pure glossy reflection you have to set the diffuse color to 0, the glossy color to the desired color and the IOR to 1.0. While this gives a colored reflection, it also looks quite flat because it doesn't render a Fresnel effect at the rims.
In the middle is a similar setup with a metal node. This will render a Fresnel effect, which more closely mimics how metals reflect light in the real world.
Complex IOR
By default metals use the Schlick approximation for the Fresnel effect. For a more precise falloff, a complex IOR can be entered (commonly known as n and k values). When a complex IOR is set up, the metallic color will get scaled so the brightness matches the Fresnell falloff for that IOR.
Specular maps
The metal node has a diffuse and a specular channel. The mix between those two is explicitly controlled via a third texture input, usually called a specular map.
Custom LUT support in tone-mapping
The camera imager node has a new input pin "Custom LUT" which you can connect with the new node "Custom LUT". Similar to image texture nodes, when you create a new custom LUT node, it will open a file chooser which lets you pick a
.cube
file.This is the OctaneBench Idea scene with the 3D LUT "Faded 47":
You can also control the strength of the LUT (here with strength 0, i.e. the original rendering):
You can use custom LUTs in combination with a response curve and gamma. To define in wich order they are applied, we replaced the input "Gamma before response" with the new enum pin "Order":
Typically, 3D LUTs are defined for sRGB input values, i.e. you usually want to apply the custom LUT last, but there might also be 3D look-up tables for linear input data in which case you might want to apply the custom LUT first.
Additional response curves
Until now, all camera response curves were either based on some film emulsion and already include the gamma correction for the display, except "linear/off" which didn't include a gamma correction. What was missing is a response curve that reproduces the rendering neutrally on a normal display. Most displays either use sRGB or simply apply a gamma of 2.2 or 1.8. For these we defined 3 additional response curves "sRGB", "Gamma 2.2" and "Gamma 1.8":
Since we expect that by far the most common response curve would be "sRGB" we made it the default setting in the camera imager node. Since this option didn't exist in previous version, any scene with a response curve "sRGB" in the imager settings will fall back to "linear/off" in older versions.
Improved clay rendering
One use of the clay rendering modes is to set up the lighting in a scene. Unfortunately, all materials were changed to a diffuse material (grey or coloured) making it impossible to set up the lighting in scenes with light sources behind specular materials.
In this scene, the left ball is a specular material with a blueish absorption medium, the right ball is a specular material with a blue transmission colour and the rear ball is a glossy material with a blue diffuse channel:
The grey clay render in 3.07 and 3.08 look like this (note that the specular materials lose their transmission/medium colours):
The coloured clay render in 3.07 and 3.08 look like this (not that the transmission colour is restored, but the medium is still not evaluated):