Setup

Description

Setup A Setup is an object which defines the main simulation parameters. It stores the settings that were accessible only in the Render settings toolbox in Ocean 2016 and earlier versions.

Defining multiple setup objects allows storing various simulation scenarii and recalling them quickly.

The active setup may be selected in the Render settings toolbox. Most of its parameters can be edited there, except the layers state, displayed in the Layers toolbox

Render settings control global simulation parameters, such as simulation algorithm, halt condition, selected environment and instrument. You may find this toolbox in the tools menu.

Metropolis

When checked, Ocean will perform a Metropolis integration instead of a classical Monte-Carlo integration. This means that when it finds an interesting light path, it will try looking at similar paths instead of picking a new random one. This is very efficient for difficult scenes, where only a tiny fraction of rays contribute to the final image. On the other hand, the noise generated by the Metropolis algorithm is coarser, and will require more samples to be visually acceptable.

This parameter does not change the final result if you wait for a very long time, until the noise has fully disappeared. But it may significantly impact the speed at which noise decreases, depending on how the light behaves in the scene.

It is recommended to enable this option only in scenes where rays have a low probability of going from the sources to the instruments.

Light Path and Back Path Depths

Ocean uses a bidirectional ray-tracing algorithm : light paths are generated from light sources (forward path) and instrument (backward path) simultaneously. These two parameters control the maximum number of points for each path, starting at 1 for the instrument or source point.

The light path depth may be set to a value of 64, while the back path depth may be up to one million.

If both are set to a low value, the result will be biased as no long connected path will be computed. Therefore, a large value for back path depth is generally used, between 200 and 1000, as light will not contribute significantly after 1000 bounces on the geometry.

Increasing the light path depth will help when light sources are narrow and generate caustics, for instance with direct sun or light bulbs. On the other hand, with diffuse light sources such as overcast sky, it will decrease the overall efficiency Increasing it above 10-15 has generally no significant impact. The minimum value is 1, best for overcast sky simulations if you do not want to optimize the simulation time, we recommend letting it on 16. Setting a low value such as 1 will decrease simulation times by 50% in good cases, but may multiply it by 100 or more in the worst ones.

Double precision mesh

For mesh geometries, ray/surface collisions can be computed using single or double floating-point precision. Double precision increases accuracy, while slowing down simulation speed by 5% to 10%. Single precision may cause artifacts revealing the meshing with needle triangles (very small width/length ratio), or errors when important geometry details are very small compared to the mesh size.

Halt Conditions

Ocean performs a statistical integration to compute the result. This means, that he never finishes, but only gets closer and closer to the ideal solution.

It’s up to the user to stop the simulation, when the error reaches an acceptable level. This can be done by clicking on the “stop” button, or by setting a halt condition:

  • Halt Time sets the number of seconds before the simulation stops

  • Halt SPP sets the maximum sample per pixel value before the simulation stops

Environment

The Environment models light coming from outside the scene, from an infinite distance.

Instrument

The Instrument is the camera or sensor used in the simulation

Children Nodes

Instrument instrument

The active instrument for the simulation

Environment environment

The active environment for the simulation

Layer set layers

The layers state

Parameters

name

type

description

metropolis

boolean

Metropolis render mode

meshcollider

list

The mesh collider precision mode, may be float or double

lightpathdepth

integer

The forward light path depth, from 1 to 64

backpathdepth

integer

The backward path depth, from 1 to 1048576

halttime

integer

Time in seconds before stopping the simulation. A value of zero never stops

haltspp

integer

Sample per pixels to compute before stopping the simulation. A value of zero never stops

xresolution

integer

Overrides the horizontal resolution of the instrument. A value of zero means the width is set to keep the aspect ratio depending on yresolution

yresolution

integer

Overrides the vertical resolution of the instrument. A value of zero means the height is set to keep the aspect ratio depending on xresolution

Ocean XML 5.0 example

<setup name="default">
     <prm metropolis="false"/>
     <prm meshcollider="float"/>
     <prm lightpathdepth="16"/>
     <prm backpathdepth="256"/>
     <prm halttime="3600"/>
     <prm haltspp="0"/>
     <prm xresolution="0"/>
     <prm yresolution="0"/>
     <instrument type="linked" name="instrument" target="view/camera2"/>
     <environment type="linked" name="environment" target="uniform"/>
     <layerset name="layers">
     <layerset name="layers">
             <layer name="carbody" visible="true">
                     <layer name="paint" visible="true">
                             <material type="linked" name="material" target="carpaint-red"/>
                     </layer>
                     <layer name="bonnet" visible="true"/>
                     <layer name="doors" visible="true"/>
                     <layer name="rear-trunk" visible="true"/>
                     <layer name="bumper" visible="true"/>
                     <layer name="front" visible="true"/>
                     <layer name="roof" visible="true"/>
                     <layer name="lateral" visible="true"/>
             </layer>
             <layer name="lights" visible="true"/>
             <layer name="chassis-mask" visible="false"/>
             <layer name="ground" visible="true">
                     <material type="linked" name="material" target="ground"/>
             </layer>
     </layerset>
</setup>