Physically Based Rendering (PBR) in Lightwave

It's a good idea to find a real reference photo with the item and use the "pick color" tool from the image.

0,0,0, ultimate black, multiplied by other scalar or color will still remain 0,0,0..
It is, but depends on image, if you for instance pick the surface of items within already lit scenes, the actual "true" color may be incorrect since the color of the lights in the scene affects the surface per that light attribute..when you pick it with pick color tool, and your scene may have the lights differently.

So color temperature of sunlight or other sources will result in different colors in the reference image, so choosing that would be a bit wrong, unless you match that real life photo color temp.

So best is probably to find a texture that is as much as possible within the "clean white spectrum"..I suppose? and evenly lit.

 
Last edited:
PBR real-world values and basic guidelines: Non-Metal

I summarize a few rules for non-metals.
The base color can be thought of as being somewhat flat in tonality. We avoid too dark and too bright colors. For dark values, we should not go under 30-50 sRGB brightness (This is about a overall brightness, individual RGB values can also be lower). Even charcoal has sRGB values over 30: sRGB (39/39/39).



I attached the compound node below.


p.s.: F0 (Fresnel Reflectance at 0 Degrees) means: the amount of light (in %) a material reflects exactly in the direction of the observer, taking into account the Fresnel effect and therefor the refraction index of the material.
Thanks for all this Thomas, invaluable info. Good to have it all in one place :)
 
In the next three postings I would like to describe the ACES workflow with the help of Denis Pontonnier Color Manager plugin. Of course, it is also useful without using PBR workflow.
You can find the plugin here.

ciao
Thomas
 
Last edited:
ACES workflow with Denis Pontonnier Color Manager

With the help of Denis Color Manager plugin we can use an ACES workflow in Lightwave. This makes sense in a post-production pipeline based on ACES color management. Aside from that, the wider gamut of ACEScg versus the gamut of the default render colorspace (linear sRGB) also changes the shading, albeit only slightly in most cases.

Denis plugin greatly extends the color management in Lightwave. However, I'm just looking at the ACES workflow here.


It's approach is similar to Lightwave's own color management. We define the conversion from different color inputs to the render color space and also to different outputs in a central window. The targets defined there are then assigned to individual color in- and outputs.

First we add Denis color manager in the master plugin window.

color_manager_01.jpg

With a double click we can open the properties of the color manager.

If we use Denis Color Manager we have to disable the Lightwave Color Manager (Preferences > CS tab). We can also do this directly in the Color Manager with the Disable LW Color Space button.

color_manager_12.jpg

Unlike the native Lightwave Color Manager, we can edit transfer curves and gamuts separately here.

First we choose the target for the conversion we want to set. We choose Texture Images, i.e. images that serve as color textures.

color_manager_03.jpg

Texture Images

These 8-bit images are mostly sRGB. That's why we choose sRGB as the Input Transfer Curve. Our render color space is ACEScg which has a linear transfer curve. We leave Output Transfer Curve on linear.

color_manager_04.jpg

To set the gamut, we switch the Source to Gamut Profile. Now we can select sRGB as gamut for texture images.

color_manager_05.jpg

We switch the Destination to Gamut Profile and select ACES AP1 as gamut (gamut of ACEScg, our render color space).

color_manager_06.jpg

This sets the first target. To use this target we have to assign it to the loaded textures in the Images Editor (Processing tab > Add Filter).

Image_editor_01.jpg

We have to do this for every 8-bit image we use as a color texture. All 8-bit images that represent data and not colors (e.g. roughness, normal, metallic and similar maps) should be interpreted as linear and do not need any additional conversion (we leave it on default). They don't need a Color Manager filter either.


Now we create the targets for the other Image Editor filters in the same way.

Linear Images

We change the target to Linear Images.

This target defines how HDR images are converted. Unfortunately, with most HDR images, nothing is known about the gamut used. However, some newer HDRIs have an ACES AP0 gamut, but most have sRGB. We take the sRGB variant here. We can always define our own costum target for other unusual color spaces if needed (Custom 1,2 and 3).

For Input Transfer Curve we choose Linear. Again we set Source to Gamut Profile and Profile to sRGB.
Output Transfer Curve and Destination Gamut Profile are always the same in the ACES workflow: Linear and ACES AP1.

color_manager_08.jpg


Background Images

We change the target to Background Images.

We have our own target for background images here. This is useful when we render elements meant to be composed with filmed footage.

Note: In a professional workflow we don't render the background images, we need them for preview purposes in Lightwave to match our elements.

In a classic ACES workflow, we get this footage either in ACES2065-1 or already converted to ACEScg.
Both have a linear transfer curve. ACES2065-1 uses gamut ACES AP0 and ACEScg gamut ACES AP1.
ACES AP1 is smaller than ACES AP0, but ACES AP0 can cause render errors, which is why ACES AP1 was developed for rendering (one part of the problem is that ACES AP0 can have negative values in the blue channel, which can lead to render errors).

This example is for ACES2065-1 footage:

color_manager_07.jpg

As always, we have to assign the target to the loaded background images in the Images Editor (Processing tab > Add Filter) to use it.

Image_editor_03.jpg

Note: In the case of image sequences in particular, the additional conversion can lead to performance losses.

As already mentioned, Custom 1 to Custom 3 can be used for special cases. These 6 targets are assigned to the corresponding images as filters in the Image Editor.
 
Last edited:
The next two targets are intended to correct color inputs in the Node Editor.

Nodal Surfaces

To convert the color inputs in the Surface Node Editor we use the Color Manager Swatch Node. We can add it in manually in the Node Editor or automatically to every color input with the Add Color Swatch To Surfaces button in Color Manager window.

Add Color Swatch To Surfaces button adds a Color Manager Swatch node to every free color input in the Surface Editor.

Swatch_Node_01.jpg

We can change the color in the Color Manager Swatch node.

Swatch_Node_02.jpg

Or we can plug a Color node into the input of the Color Manager Swatch node.

Swatch_Node_03.jpg

Note: Everyone has to decide for themselves whether they want to enter the color values in sRGB or linearly. I follow Gerardo Estrada's example here.

We have to set the Target to Nodal Surfaces.
As Input Color Transfer Curve we choose Gamma with a value of 2,2. Gamut Profile again as Source and sRGB as Profile.

As always, we choose Linear as the Output Transfer Curve and ACES AP1 as the Destination Gamut Profile to define our render color space.

color_manager_09.jpg


Nodal Lights

The same applies here as for Surface Color Manager swatches.

Note: The implementation of the Light Node Editor in Lightwave seems strange to me. The three inputs that appear to be independent influence each other and are also influenced by the light color outside of the Node Editor. However, that has nothing to do with Denis Color Manager...



RGB Channels and Backdrop

We change the target to RGB Channels & Backdrop.

This target defines two color inputs at once: color channels via Graph Editor modifier and backdrops. In order for the backdrop to behave in the same way as with the native Lightwave Color Manager, we have to set the Input Transfer Curve to Linear. Source to Gamut Profile and Profile to sRGB.

And like always, we choose Linear as the Output Transfer Curve and ACES AP1 as the Destination Gamut Profile to define our render color space.

With the Add Backdrop Filter button we can assign the filter to the backdrop within the Color Manager. Like all filters, you can of course add it manually (Effects > Backdrop tab).

color_manager_10.jpg

Note: For HDR images that are used as backdrops, there are two options for color space conversion: firstly with a filter in the Images Editor and secondly with the Backdrop filter. Since the filter in the Images Editor is very slow for large hdr images, I don't use it and use the Backdrop Filter instead. However, you must not use both together!

One more note:
the backdrop filter must be located below the environment element in the stack.

Backdrop_Filter_01.jpg

Since the RGB channel modifiers are also defined with this target, they are also linear. All values that are converted with it are therefore to be seen as linear and not log sRGB.
However, the modifiers are assigned to the respective color directly in the Graph Editor (Modifier tab).

Color_Channel_01.jpg

I find the Surface Node variant more practical and hardly ever use the Graph Editor Modifier method. Again, do not use both together for the same color input!
 
Last edited:
The last two targets we can set are for converting ACEScg to VPR display and render output.

VPR Display

We change the target to VPR Display.

Here we select as Source Gamut Profile and the Profile ACES AP1. As Destination Gamut Profile and the Profil sRGB. For Input Transfer Curve we choose Linear and for Output Transfer Curve sRGB (Gamma 2,2).

color_manager_11.jpg

Again, we need to assign the target. Here with Add VPR Display Filter.
As always, you can assign the filter manually (Effects > Add Pixel Filter).

Display_Filter_01.jpg

Note: Since we are converting from a larger gamut (ACES AP1) to a smaller gamut (sRGB) here, tone mapping takes place. Denis Color Manager offers us different settings for rendering intent and black point compensation. More details can be found on Denis website.



Post-Processing

The last target is to convert the render output. In a professional workflow, the renders are delivered in ACEScg for compositing. In this case we don't need this target. However, I think the principle is clear by now.

ciao
Thomas
 
Last edited:
Back
Top