New features and changes in Ocean 2020


Polarization overhaul


Brewster scene


A smooth copper sphere under Hosek-Wilkie (polarized) sky, 2019 vs 2020

Several modifications have been added to the internal renderer to improve or adjust polarization effects, notably in the treatment of Stokes vectors.

Also the Complex Fresnel interface law now takes in account S and P relative phase difference.

Mask Rendering


Scene rendered with a mask

Instrument Outputs can now define a render mask, which is used to discard areas from being rendered. Its main use is to help reduce rendering time on specific scenes ; for example if many variants of a scene needs to be rendered and parts of the rendered image stay mostly the same regardless of such variations.

To recompose the final image, the Operation Filter has first been designed to help users in this situation, by mix the rendered image with a precomputed one that fills in the gaps.

Although the Operation Filter can also be used in other ways and is in no way tied to this rendering technique.

Additional information can be found in Instrument documentation.


Tuned CIE sky


Screenshot of CIE Sky configurator

The CIE Sky environment now exposes the 5 model parameters (a, b, c, d, e) for a greater flexibility. Associated with a sky simulator such as The PD CIE Sky Model, it is possible to simulate sky for a given location on Earth and various controllable parameters.

Additional information can be found in CIE Sky documentation.

Operation filter


Example of Operation filter type ‘Addition’

A new filter is available in the post processing process : the operation filter. The operation filter applies arithmetic operations, such as addition, subtraction, multiplication, to two images. The process applies a pixel-by-pixel operation that means the value of a pixel in the buffer image depends on the same pixel in the input image.

Distortion camera


Cornellbox render using distortion camera

In the field of applied optics, an important part of analysis is the lens abberation quantification. Among all the aberrations, the lens distortions are the most common. An image distortion is the deviation from rectilinear projection due to the non linearity of the nes.

Ocean already had a instrument that provides parametric lens aberrations with the Real rectilinear camera. However, it was not possible to import user measured data to create specific distortions. The Distortion camera, now available in Ocean in the list of instruments, fills this gap and allows to add specific lens distortions per field of view angle, also known as radial distortions.

The radial distortion can usually be classified as barrel distortions and pincushion distortions. In the first type of distortion, the image magnification decreases with distance from the optical axis. In pincushion distortion, the image magnification increases with the distance from the optical axis. Less common is the mixture of both types, called mustache (or complex) distortion.


Example of distortion. From left to right, Barrel distortion, Pincushion distortion, Mustache distortion

Compositional normal shaders


Normal blending operation

Ocean 2020 provides 3 new Normal Shaders to help creating convincing details on geometry surfaces :

The image on the right presents a render created by blending a rough heightmap and an uniform normal pointing to the local geometry normal (leaving the geometry normal unmodified). The blend factor is controlled by a smooth grayscale texture. The result is a material with textured smooth transitions from rough to smooth surface.

Angular scalar shader


BSDF Blend with angular dependent factor

A new type of Scalar Shader, the Angular Scalar Shader, has been added to increase material creation possibilities.

It provides a scalar value depending on the incident and outgoing vectors of light hitting a surface, sampling such values from a grayscale texture (or a specific texture channel).

The value sampled from texture can be fetched in :

  • Angle space : \(x = \theta_{in}\), \(y = \theta_{out}\)

  • Cosine space \(x = cos(\theta_{in})\), \(y = cos(\theta_{out})\)

  • Half Vector space : \(x = \theta_{half}\), \(y = \theta_{diff}\)

Scene processing

Pack & Go


packaging a scene

You can now package a scene and all its dependencies in a single click with the “Pack” button.

Additional information can be found in Pack & Go documentation.

User Interface

Renderer Metachannels preview


Rendered image with various meta channels displayed

Three rendering “Meta Channels” are now available for preview in Channel Image Ouptut ! Some of these are used internally by the renderer but are great tools for users.

The Variance, PixelSPP and SNR channels are mainly useful for understanding the rendering process, detecting issues and perhaps tweaking render parameters (metropolis, light/back paths, …) based on these observations.

The Depth channel is precomputed at the start of the rendering and represents the distance from the instrument to the first surface rays interact with, at each pixel. It can be used for creative effects on the rendered image.

Additional information can be found in Channel Image documentation.

Pixel info toolbox


Analyzing various areas on image

Ocean 2020 introduces a new widget called “Pixel Infos”. Its purpose is to regroup all image analysis tools present in Ocean, and provide you with a more consistant interface. With this new widget, you can now define positions of interest in an image, and compute various metrics at these positions.

Four category of metrics are present in the Pixel Infos widget :

  • Geometry : lets you get more insights about the geometry visible in your renders.

  • Colorimetry : tools from Ocean 2019.

  • Photometry : tools from Ocean 2019.

  • Spectrometry : tools from Ocean 2019.

Additional information can be found in Pixel Infos documentation.



Renaming in action

Image tab inplace renaming

Render images can now be renamed by a simple double click on their title, in the central tab bar.


New BSDF Converters

New BSDF Converters

Ocean’s BSDF converter can now interpret LBNL Reports (glazing data format)

It can also convert Split BRDF + BTDF Sparse CSV Table by parsing a pair of BRDF/BTDF files (as opposed to BSDF csv tables containing both reflective and transmissive content)


Selecting a BSDF type by browsing in the “last used” section

Last used nodes

Since new nodes are added each year into Ocean, some context menus became overwhelmed with various types to select. To simplify browsing we’ve added a “last used” section to some nodes type drop down menus.

It shows the user the last 4 node types used, giving quicker access to features used often.