The dome is controlled with the following attributes on the IOptions class, shown here with their default settings:
- const char* environment_dome_mode = "infinite"
The supported modes are:
"infinite" : conventional infinite spherical environment lookup (default),
"ground" : infinite spherical environment lookup, but with a textured groundplane,
"sphere" : finite size sphere shaped dome,
"box" : finite size box shaped dome,
"sphere_with_ground" : finite size sphere shaped dome where the lower part of the environment is projected onto the plane dividing upper and lower parts of the sphere,
"box_with_ground" : finite size box shaped dome where the lower part of the environment is projected onto the plane dividing upper and lower parts of the box.
For the finite size domes, the projection is computed by assuming a virtual camera position that is defined by "environment_dome_ground_position" offset by "environment_dome_ground_texturescale" times "environment_dome_rotation_axis". So, as an example, if the real environment is an approximately box-shaped room and the camera position to capture the environment map is known, then those values can be used directly to set up a faithful representation of the environment.
- mi::Float32_3 environment_dome_position = mi::Float32_3(0,0,0)
The origin of the dome in case it is of finite size.
- mi::Float32 environment_dome_radius = 100
The dome radius for modes "sphere" and "sphere_with_ground".
- mi::Float32 environment_dome_width = 200
The dome width for modes "box" and "box_with_ground".
- mi::Float32 environment_dome_height = 200
The dome height for modes "box" and "box_with_ground".
- mi::Float32 environment_dome_depth = 200
The dome depth for modes "box" and "box_with_ground".
- mi::Float32_3 environment_dome_rotation_axis = mi::Float32_3(0,1,0)
This axis defines the rotation axis for interactive rotations of the dome, without the need for expensive rebaking of the environment. It also defines the up vector of the optional groundplane and can thus be used to transform the dome for z-up scenes by setting to (0,0,1). This does not affect the lookups into the environment map, i.e., the environment lookup function has to be z-up as well in this case.
- mi::Float32 environment_dome_rotation_angle = 0
Angle of rotation for interactive rotations of the dome without the need for expensive rebaking of the environment. The range of the rotation angle is [0,1].
- bool environment_dome_visualize = false
Enables a false-color overlay of the finite size environment geometry. This can be used to align the geometry with the projection of the captured environment map.