IOptions

Functions

SET_CID
RED_RC SetAllDefaultOptions
bool GetCelestialBodiesPathsDisplay
void SetCelestialBodiesPathsDisplay
double GetStarInTheSkyFOVRatio
void SetStarInTheSkyFOVRatio
double GetCloseOrbitFOVRatio
void SetCloseOrbitFOVRatio
double GetPlanetPatchOnScreenSplitSize
void SetPlanetPatchOnScreenSplitSize
double GetPlanetPatchOffScreenSplitSize
void SetPlanetPatchOffScreenSplitSize
bool GetTrianglesFillMode
void SetTrianglesFillMode
void SetDisplayMode
DISPLAY_MODE GetDisplayMode
void SetStarCSMSize
void GetStarCSMSize
void SetStarCSMBlur
int GetStarCSMBlur
void SetStarCSMAlphaThreshold
double GetStarCSMAlphaThreshold
RED_RC SetStarCSMRange
double GetStarCSMRange
RED_RC SetStarCSMBias
void GetStarCSMBias
void SetStarCSMOverlap
double GetStarCSMOverlap
int GetStarCSMCount
void SetSkyReflectanceMultiplier
double GetSkyReflectanceMultiplier
bool GetAtmosphericLandscapeShadows
void SetAtmosphericLandscapeShadows
bool GetAtmosphericCloudShadows
void SetAtmosphericCloudShadows
int GetAtmosphericSamples
void SetAtmosphericSamples
double GetAtmosphericGamma
void SetAtmosphericGamma
void SetStarGIStrengthInShadows
double GetStarGIStrengthInShadows
void SetPrismsShadowRange
int GetPrismsShadowRange
void ForcePrismsRealMeshShadows
bool IsForcedPrismsRealMeshShadows
void SetPrismsMeshFadeOffset
double GetPrismsMeshFadeOffset
void SetPrismsDensity
double GetPrismsDensity
double GetMaxPrismsDensity
void SetPrismsExactSpawn
bool GetPrismsExactSpawn
void SetPrismsSpawnOffset
int GetPrismsSpawnOffset
void SetPrismsFadeDistances
void GetPrismsFadeDistances
void SetPrismsSplatOverlap
double GetPrismsSplatOverlap
void SetPrismsPassesCount
int GetPrismsPassesCount
void SetSnowColor
void GetSnowColor
void SetCloudsFadeDistances
void GetCloudsFadeDistances
void SetCloudsDensity
double GetCloudsDensity
double GetMaxCloudsDensity
void SetCloudsRenderingResolution
int GetCloudsRenderingResolution
void SetCloudsRelighting
double GetCloudsRelighting
void SetFullSceneAntiAliasing
int GetFullSceneAntiAliasing
void SetAntiAliasing
int GetAntiAliasing
void SetAntiAliasingMotionThreshold
double GetAntiAliasingMotionThreshold
void SetAntiAliasingAlphaMin
double GetAntiAliasingAlphaMin
void SetAntiAliasingAlphaMax
double GetAntiAliasingAlphaMax
void SetGISamplesSpread
double GetGISamplesSpread
double GetPlanetResolution
RED_RC SetPlanetResolution
double GetPlanetLandscapeOpsTime
void SetPlanetLandscapeOpsTime
int GetThreadsCount
void SetThreadsCount
int GetPlanetLandscapeThreadsCount
void SetPlanetLandscapeThreadsCount
double GetGeometryGIUpdateTime
void SetGeometryGIUpdateTime
void SetSSAO
bool HasSSAO
void SetSSAORadius
double GetSSAORadius
void SetSSAOSamplesCount
int GetSSAOSamplesCount
void SetSSRStrength
double GetSSRStrength
void SetSSRRayResolution
double GetSSRRayResolution
void SetSSRBorderFade
int GetSSRBorderFade
void SetSSRCameraFade
double GetSSRCameraFade
void SetSSRObjectThickness
double GetSSRObjectThickness
void SetSSRRefiningSteps
int GetSSRRefiningSteps
void SetSSRRenderingResolution
int GetSSRRenderingResolution

Detailed Description

class IOptions : public RED::IREDObject

Planetary system options.

The CID_ARTWorld class object (the world singleton) implements the ART::IOptions interface. This interface lets you control all the settings available in the planetary engine.

Public Functions

SET_CID(CID_class_ARTIOptions)
virtual RED_RC SetAllDefaultOptions() = 0

Sets all options default values.

Returns:RED_OK if the method has succeeded,

RED_ALLOC_FAILURE if a memory allocation has failed.

virtual bool GetCelestialBodiesPathsDisplay() const = 0
Returns:True if celestial bodies trajectories are to be displayed, false otherwise.
virtual void SetCelestialBodiesPathsDisplay(bool iOnOff) = 0

Enable or disable the display of celestial bodies trajectories.

Parameters:iOnOff – Set to true to display celestial bodies path, false to hide them.
virtual double GetStarInTheSkyFOVRatio() const = 0
Returns:The maximal ratio of the observer’s field of view that can be occupied by a body screen projection to be visible using ‘star in the sky’ graphics.
virtual void SetStarInTheSkyFOVRatio(double iStarFOVRatio) = 0

Define the field of view for switching to ‘star in the sky’ graphics.

A planetary body has three graphics display:

  • A ‘star in the sky’ representation when it’s seen from a very far distance like a star in the sky.
  • A ‘far away’ representation which allow for more details.
  • A ‘close orbit’ representation for detailed walkthroughs.

Switching among these graphics mode is based on the visible size of the planetary body on screen. A percentage of the field of view determines when the engine has to switch graphics.

Parameters:iStarFOVRatio – Below this FOV percentage value, the planetary body will be rendered using ‘star in the sky’ graphics. iStarFOVRatio is silently clamped to [ 0.0, 1.0 ].
virtual double GetCloseOrbitFOVRatio() const = 0
Returns:The maximal ratio of the observer’s FOV that can be occupied by a body screen projection to be visible using ‘close orbit’ graphics.
virtual void SetCloseOrbitFOVRatio(double iCloseFOVRatio) = 0

Define the field of view for switching to ‘close orbit’ graphics.

A planetary body has three graphics display:

  • A ‘star in the sky’ representation when it’s seen from a very far distance like a star in the sky.
  • A ‘far away’ representation which allow for more details.
  • A ‘close orbit’ representation for detailed walkthroughs.

Switching among these graphics mode is based on the visible size of the planetary body on screen. A percentage of the field of view determines when the engine has to switch graphics.

Parameters:iCloseFOVRatio – Above this FOV percentage value, the planetary body will be rendered using ‘close orbit’ graphics. iCloseFOVRatio is silently clamped to [ 0.0, 1.0 ].
virtual double GetPlanetPatchOnScreenSplitSize() const = 0
Returns:The onscreen pixel size of a patch above which it gets splitted.
virtual void SetPlanetPatchOnScreenSplitSize(double iSplitSize) = 0

Define the planet ‘on screen’ patch split pixel size.

Parameters:iSplitSize – The new ‘on screen’ planet patch split size value. The provided value is clamped to 1.0 if it’s lower than 1.0.
virtual double GetPlanetPatchOffScreenSplitSize() const = 0
Returns:The offscreen pixel size of a patch above which it gets splitted.
virtual void SetPlanetPatchOffScreenSplitSize(double iSplitSize) = 0

Define the planet ‘off screen’ patch split pixel size.

Parameters:iSplitSize – The new ‘off screen’ planet patch split size value. he provided value is clamped to 1.0 if it’s lower than 1.0.
virtual bool GetTrianglesFillMode() const = 0
Returns:false if triangles are displayed using lines, true if triangles are displayed as filled polygons.
virtual void SetTrianglesFillMode(bool iFillMode) = 0

Show rendered triangles on / off.

Parameters:iFillMode – if false, all the rendered triangles are rendered using lines, so they don’t appear filled. If true, triangles are rendered as filled, plain, polygons.
virtual void SetDisplayMode(ART::DISPLAY_MODE iDisplayMode) = 0

Sets the global world display mode.

Parameters:iDisplayMode – The new display mode to use.
virtual ART::DISPLAY_MODE GetDisplayMode() const = 0
Returns:The current display mode for the world.
virtual void SetStarCSMSize(int iSize) = 0

Sets the dimensions of the star cascaded shadow maps.

The star cascaded shadow map has dimensions based on the specified iSize. Depending on the aspect ratio of the world region to cover, the star CSM’s maximal pixel size is set to iSize and the other dimension of the star CSM is automatically adjusted.

Parameters:iSize – Pixel width of the star cascaced shadow map. Silently clamped to [ 1, 8192 ].
virtual void GetStarCSMSize(int &oSize) const = 0

Access the dimensions of each star cascaded shadow map.

Parameters:oSize – Pixel size of the star cascaded shadow map.
virtual void SetStarCSMBlur(int iBlur) = 0

Sets the blurring effect of the star cascaded shadow maps.

Parameters:iBlur – Size of the blur kernel used to blur shadows generated by the star CSMs. The range of blur values is [ 1, 20 ]. iBlur is silently clamped to these bounds.
virtual int GetStarCSMBlur() const = 0
Returns:The blur amount of the star cascaded shadow maps.
virtual void SetStarCSMAlphaThreshold(double iAlpha) = 0

Sets the alpha shadowing threshold of the star cascaded shadow maps.

This is the alpha value of transparent geometries above which they’re casting shadows.

Parameters:iAlpha – Alpha threshold in [ 0.01, 1.0 ].
virtual double GetStarCSMAlphaThreshold() const = 0
Returns:The shadowing alpha threshold of the star cascaded shadow maps.
virtual RED_RC SetStarCSMRange(double iRange, int iNumber) = 0

Define the range of a star cascaded shadow map.

The specified iNumber CSM starts at the effect distance of the previous CSM and ends at iRange. The first CSM starts at 1 meter from the observer. If the specified ranges are not increasing with iNumber, then the world simulation will return an error.

Parameters:
  • iRange – The shadow map maximal effect range in meters.
  • iNumber – The number of the CSM to setup.
Returns:

RED_OK if the method has succeeded,

RED_BAD_PARAM if iNumber is invalid.

virtual double GetStarCSMRange(int iNumber) const = 0
Parameters:iNumber – The number of the CSM to access.
Returns:The range of a given star cascaded shadow map. 1.0 if iNumber is below zero, the max range if iNumber is too large.
virtual RED_RC SetStarCSMBias(double iExponent, double iScale) = 0

Define the bias of star cascaded shadow maps.

Shadow bias is applied as a geometry shifting factor based on the distance between the shadowing geometry and the observer. The square distance is computed d2 and then bias = iScale * pow( d2, iExponent );

Parameters:
  • iExponent – The power function exponent applied to distance between observer and geometry.
  • iScale – The scaling function applied to distance between observer an geometry.
Returns:

RED_OK if the method has succeeded,

RED_BAD_PARAM if iExponent or iScale are negative.

virtual void GetStarCSMBias(double &oExponent, double &oScale) const = 0

Get the bias of star cascaded shadow maps.

Parameters:
  • oExponent – The power function exponent applied to distance between observer and geometry.
  • oScale – The scaling function applied to distance between observer an geometry.
virtual void SetStarCSMOverlap(double iOverlap) = 0

Define the overlap amount between star cascaded shadow maps.

Star cascaded shadow maps can be set with an overlapping percentage that smoothes their transitions.

Parameters:iOverlap – Overlap amount in percentage. Increasing this value smoothes the transition between shadow maps, but also reduces the accuracy of each shadow map. Value in [0.0, 0.4].
virtual double GetStarCSMOverlap() const = 0
Returns:The amount of overlap among star cascaded shadow maps.
virtual int GetStarCSMCount() const = 0
Returns:The number of available star cascaded shadow maps.
virtual void SetSkyReflectanceMultiplier(double iMult) = 0

Sets the reflectance multiplier applied on the sky reflections.

This affects the intensity of the reflected sky on the ground.

Parameters:iMult – Multiplier value in [ 0.0, inf [. Silently clamped to positive values.
virtual double GetSkyReflectanceMultiplier() const = 0
Returns:The sky reflectance multiplier.
virtual bool GetAtmosphericLandscapeShadows() const = 0
Returns:true if landscape shadows over the atmosphere are enabled, false otherwise.
virtual void SetAtmosphericLandscapeShadows(bool iShadows) = 0

Toggle the sky landscape shadows over the atmosphere.

Enabling sky landscape shadows adds shadow casting of the landscape and vegetation over the atmosphere, resulting in a higher realism, resulting in a higher rendering cost.

virtual bool GetAtmosphericCloudShadows() const = 0
Returns:true if cloud shadows over the atmosphere are enabled, false otherwise.
virtual void SetAtmosphericCloudShadows(bool iShadows) = 0

Toggle the sky cloud shadows over the atmosphere.

Enabling sky cloud shadows adds shadow casting of the clouds over the atmosphere, resulting in a higher realism, resulting in a higher rendering cost.

virtual int GetAtmosphericSamples(ART::ATMOSPHERIC_SAMPLE iSample) const = 0
Parameters:iSample – The category of samples processed.
Returns:The number of atmospheric samples used for the rendering of the atmosphere for a given category of effects.
virtual void SetAtmosphericSamples(ART::ATMOSPHERIC_SAMPLE iSample, int iCount) = 0

Sets the number of atmospheric samples used for the rendering of the atmosphere for a given category of effects.

Parameters:
  • iSample – The category of samples processed.
  • iCount – The number of samples.
virtual double GetAtmosphericGamma() const = 0
Returns:The atmospheric gamma transform.
virtual void SetAtmosphericGamma(double iGamma) = 0

Sets the atmospheric gamma transform.

The atmosphere has a specific extra gamma transform that can be applied to it’s in-scattering term. This can be used to compensate low sampling rates of the sky to avoid getting dark horizons.

Usual ranges for this setting are in 0.5 - 5.0.

Parameters:iGamma – Gamma values in [ 0.01, inf [.
virtual void SetStarGIStrengthInShadows(double iGIShadowStrength) = 0

Sets the amount of star GI in shadows.

This method controls the strength of the amount of global illumination of indirect bounces produced by the sunlight. The real-time shading approximates the sun global illumination in lit and shadowed areas using different methods. This parameter controls the strength of the sun global illumination in shadowed areas.

Parameters:iGIShadowStrength – A value in [ 0.0, 1.0 ]. Default is 0.25.
virtual double GetStarGIStrengthInShadows() const = 0
Returns:the strength of the GI term used in areas not directly illuminated by the sunlight.
virtual void SetPrismsShadowRange(ART::PRISM_TYPE iType, int iMaxCSM) = 0

Define the shadowing range of prisms.

This sets the number of cascaded shadow maps (starting from the closest CSM number 0 up to the specified iMaxCSM number) that’ll cast shadows for the corresponding prisms.

Parameters:
  • iType – The considered type of prisms.
  • iMaxCSM – Defines the list of CSMs that’ll cast shadows for the prisms in [ 0, iMaxCSM [ excluded.
virtual int GetPrismsShadowRange(ART::PRISM_TYPE iType) const = 0
Parameters:iType – The type of prisms to consider.
Returns:The shadowing range for the requested iType of prisms.
virtual void ForcePrismsRealMeshShadows(ART::PRISM_TYPE iType, bool iRealShadows) = 0

Force real mesh shadows to be used for a given category of prisms.

Parameters:
  • iType – The considered type of prisms.
  • iRealShadows – If true, real mesh shadows are forced, if false, the real mesh shadow setting for the prism is used.
virtual bool IsForcedPrismsRealMeshShadows(ART::PRISM_TYPE iType) const = 0
Parameters:iType – The type of prisms to consider.
Returns:true if real mesh shadows are forced on for the considered category of prisms.
virtual void SetPrismsMeshFadeOffset(ART::PRISM_TYPE iType, double iOffset) = 0

Shift the prism meshes display distance.

This method can be used to globally shift the display distances of all prisms meshes in a category of prisms.

Parameters:
  • iType – The considered type of prisms.
  • iOffset – The distance offset (in meters) to apply. Can be positive or negative.
virtual double GetPrismsMeshFadeOffset(ART::PRISM_TYPE iType) const = 0
Parameters:iType – The considered type of prisms.
Returns:The prism meshes fade offset for the considered category of prisms.
virtual void SetPrismsDensity(ART::PRISM_TYPE iType, double iDensity) = 0

Define the prisms density.

This value defines the overall prism density that are spawned. 1.0 is normal density, that can be strengthened or lowered. The default density is 8.0.

Parameters:
  • iType – The type of prisms whose density is to be modified.
  • iDensity – Density value in [ 0.0, 16.0 ]. Any value is silently clamped to these bounds.
virtual double GetPrismsDensity(ART::PRISM_TYPE iType) const = 0
Parameters:iType – The type of prisms whose density is searched for.
Returns:The current prisms density for the requested iType of prisms.
virtual double GetMaxPrismsDensity() const = 0
Returns:The maximal possible prism density. Applies to all types of prisms.
virtual void SetPrismsExactSpawn(ART::PRISM_TYPE iType, bool iExact) = 0

Define the prisms spawning method.

If set to true, prisms are accurately scattered over the landscape. When false (the default), prisms are scattered using an approximative method that can lead to a lower amount of representation of prisms in thin densities areas.

Parameters:
  • iType – The type of prisms whose spawning method is to be modified.
  • iExact – Set to true for an accurate prisms placement, false to use a faster method.
virtual bool GetPrismsExactSpawn(ART::PRISM_TYPE iType) const = 0
Parameters:iType – The type of prisms whose spawning method is searched for.
Returns:The current prisms spawning method for the requested iType of prisms.
virtual void SetPrismsSpawnOffset(ART::PRISM_TYPE iType, int iOffset) = 0

Modify the prisms spawning distance.

This parameter can be set to modify the distance at which prisms are seeded over the landscape. The specified value is an offset added to the initial patch depth at which the selected category of prisms get spawned over the landscape. Increasing the value increases the display depth thus spawning prisms from a closer distance. This reduces the workload of spawning prisms and also may constraint some prisms in size. Decreasing the value decreases the display depth thus spawning prisms from farther away. This increases the prisms workload, make prisms splats visible from farther away too. This relaxes size constraints on prisms.

Parameters:
  • iType – The type of prisms whose spawning distance.
  • iOffset – The spawning depth offset.
virtual int GetPrismsSpawnOffset(ART::PRISM_TYPE iType) const = 0
Parameters:iType – The type of prisms whose spawning offset is searched for.
Returns:The current prisms spawning offset for the requested iType of prisms.
virtual void SetPrismsFadeDistances(ART::PRISM_TYPE iType, double iFadeStart, double iFadeEnd) = 0

Define the prisms fade distances in meters.

This value defines the prism fading distances. Prisms of iType start fading out at iFadeStart and have disappeared at iFadeEnd.

Parameters:
  • iType – The type of prisms whose distances is to be modified.
  • iFadeStart – Startup fading distance. Silently forced to be greater than or equal to 0.
  • iFadeEnd – End fading distance, must be greater than iFadeStart. If not, the value is silently set to iFadeStart.
virtual void GetPrismsFadeDistances(double &oFadeStart, double &oFadeEnd, ART::PRISM_TYPE iType) const = 0

Get prisms fading distances.

Parameters:
  • oFadeStart – Startup fading distance.
  • oFadeEnd – End fading distance.
  • iType – The type of prisms whose fade distances are searched for.
virtual void SetPrismsSplatOverlap(ART::PRISM_TYPE iType, double iOverlap) = 0

Define the prisms splat overlap area with prisms.

This value in meters defines the overlap area between the prism and the splat. At zero meters, at the prisms ending fade distance, splats appear entirely. At a distance greater than zero meters, splats start appearing at the prisms end fade distance minus iOverlapDistance and are fully appeared at the prisms end fade distance.

Parameters:
  • iType – The type of prisms whose overlap distance is to be modified.
  • iOverlap – The overlap distance of splats with prisms in meters.
virtual double GetPrismsSplatOverlap(ART::PRISM_TYPE iType) const = 0
Parameters:iType – The type of prisms whose overlap distance is searched for.
Returns:The prisms splat distance overlap for the specified iType of prisms.
virtual void SetPrismsPassesCount(int iCount) = 0

Define the number of passes used for the rendering of prisms.

Reducing the number of passes will improve display performance at the expense of a loss in the visual quality of rendered plants. The default is to use 3 rendering passes for prisms.

Parameters:iCount – The number of rendering passes in [ 1, 3 ]. The provided value is clamped to these bounds.
virtual int GetPrismsPassesCount() const = 0
Returns:The number of rendering passes used to render prisms.
virtual void SetSnowColor(const RED::Color &iColor, float iReflectance) = 0

Sets the color and reflectance of snow.

Parameters:
  • iColor – The RGB snow color in [ 0.0, 1.0 ]
  • iReflectance – The snow reflectance factor in [ 0.0, 1.0 ].
virtual void GetSnowColor(RED::Color &oColor, float &oReflectance) = 0

Get the snow color and reflectance.

Parameters:
  • oColor – The RGB snow color in [ 0.0, 1.0 ]
  • oReflectance – The snow reflectance factor in [ 0.0, 1.0 ].
virtual void SetCloudsFadeDistances(double iFadeStart, double iFadeEnd) = 0

Define the clouds fade distances.

Parameters:
  • iFadeStart – Startup fading distance. Silently forced to be greater than or equal to 0.
  • iFadeEnd – End fading distance, must be greater than iFadeStart. If not, the value is silently set to iFadeStart.
virtual void GetCloudsFadeDistances(double &oFadeStart, double &oFadeEnd) const = 0

Get clouds fading distances.

Parameters:
  • oFadeStart – Startup fading distance.
  • oFadeEnd – End fading distance.
virtual void SetCloudsDensity(double iDensity) = 0

Sets the clouds density.

This is a global scaling factor applied to clouds to control the global clouds density.

Parameters:iDensity – Density value in [ 0.0, 16.0 ]. Any value is silently clamped to these bounds.
virtual double GetCloudsDensity() const = 0
Returns:The clouds density.
virtual double GetMaxCloudsDensity() const = 0
Returns:The maximal possible clouds density.
virtual void SetCloudsRenderingResolution(int iScale) = 0

Sets the clouds rendering resolution.

Sets the clouds downscaling factor in [ 1, 4 ]. The cloud rendering resolution is lowered by 1 << iScale. So setting iScale to 2 reduces the rendering resolution of clouds by 2 in width and height, so 1/4 pixels.

Parameters:iScale – values 1 = x1 rendering, 2 = x1/4, 3 = x1/9, 4 = x1/16.
virtual int GetCloudsRenderingResolution() const = 0
Returns:The clouds rendering resolution downscale factor.
virtual void SetCloudsRelighting(double iRelighting) = 0

Setup the sky relighting amount generated by clouds and clouds covers.

This percentage is a relighting effect generated by clouds and clouds covers resulting of the absorption of the sunlight by clouds and clouds covers. It brightens cloudy shadowed regions.

Parameters:iRelighting – The percentage of relighting in [ 0.0, 1.0 ]. Silently clamped to these boudaries.
virtual double GetCloudsRelighting() const = 0
Returns:The amount of clouds relighting in use.
virtual void SetFullSceneAntiAliasing(int iScale) = 0

Apply a rendered image scaling to the rendered images.

This method can be used to render larger images than actually requested. By setting a scale to x2 x3 or x4, the initial rendered image size will be increased by x2 x3 or x4. For instance rendering a 1920 x 1080 image with a x2 scale renders a 3840 x 2160 real image.

Scaled images are downsized before display or are accessed “as is” if offscreen rendering is enabled.

Modifying FSAA does not change the size of kernels used by the post process camera, that may need to be rescaled accordingly by the calling application.

A change in the FSAA setting has a one frame delay before being actually visible.

Parameters:iScale – Scaling factor to apply to rendered images resolution in [ 1, 4 ]. Default is 1 (no scaling). iScale is clamped to [ 1, 4 ] by the method.
virtual int GetFullSceneAntiAliasing() const = 0
Returns:The resolution super sampling factor applied to our rendered images in [ 1, 4 ].
virtual void SetAntiAliasing(int iAA) = 0

Sets the temporal anti-aliasing level for the deferred pipeline.

This method sets the level of AA in use for the entire deferred pipeline. The value if iAA is turned into the square number of samples. iAA = 4 means 4 x 4 = 16 sub samples per pixel. The AA for the deferred pipeline is a temporal anti-aliasing.

Parameters:iAA – New temporal AA value for the deferred pipeline, in [ 1, 8 ]. iAA is clamped to these bounds.
virtual int GetAntiAliasing() const = 0
Returns:The current anti-aliasing level for the deferred pipeline.
virtual void SetAntiAliasingMotionThreshold(double iThreshold) = 0

Defines the anti-aliasing motion threshold.

The anti-aliasing motion threshold defines how much the temporal samples accumulation can be reduced in image areas that exhibit strong differences in motion (for instance with moving objects or after camera movements that change the visibility in an image). A low value of this value increases the ghosting effects of the temporal anti-aliasing and tend to generate smoother variations in the image, while higher values will show less ghosting and more flickering in the image.

Starting values for this setting are in the 0.1 - 0.7 range. Default is 0.4.

Parameters:iThreshold – A value in [ 0.0, inf [.
virtual double GetAntiAliasingMotionThreshold() const = 0
Returns:The anti-aliasing motion threshold value.
virtual void SetAntiAliasingAlphaMin(double iAlphaMin) = 0

Define the anti-aliasing frame to frame accumulation factor.

This ‘alpha’ value defines the accumulation factor of the current frame vs. the history of all frames that were rendered before. The accumulation is color = alpha * color( n ) + ( 1 - alpha ) * color( n - 1 ).

The temporal anti-aliasing algorithm may dynamically change the alpha used for frame to frame accumulation and increase it up to the maximal alpha value defined by ART::IOptions::SetAntiAliasingAlphaMax.

Larger values for this setting reduce the ghosting but increase flickering.

The startup value for this setting is 0.1. Usual range is in 0.05 - 0.2.

Parameters:iAlphaMin – A value in [ 0.01, 1.0 ]. Silently clamped to the current maximal alpha value.
virtual double GetAntiAliasingAlphaMin() const = 0
Returns:The anti-aliasing frame to frame accumulation factor.
virtual void SetAntiAliasingAlphaMax(double iAlphaMax) = 0

Define the maximal anti-aliasing frame to frame accumulation factor.

This alpha value must be greater than the alpha value set using ART::IOptions::SetAntiAliasingAlphaMin. It defines, with the minimal alpha value, the range of variations used by the temporal anti-aliasing to integrate a new frame contribution to the final image.

Larger values for this setting reduce the ghosting but increase flickering.

The startup value for this setting is 0.8. Usual range is in 0.5 - 1.0.

Parameters:iAlphaMax – A value in [ alpha_min, 1.0 ]. Silently clamped to the current minimal alpha.
virtual double GetAntiAliasingAlphaMax() const = 0
Returns:The maximal anti-aliasing frame to frame accumulation factor.
virtual void SetGISamplesSpread(double iSpread) = 0

Sets the spreading of GI cache samples used by geometries.

Parameters:iSpread – The spread factor to use in [ 0.01, 4.0 ]. Default is 1.0.
virtual double GetGISamplesSpread() const = 0
Returns:The spreading factor of GI cache samples used by geometries.
virtual double GetPlanetResolution() const = 0
Returns:The finest resolution of a planet, in meters. Default is 1 centimeter.
virtual RED_RC SetPlanetResolution(double iResolution) = 0

Set the resolution of a planet.

This option value must be set before the simulation startup.

Parameters:iResolution – The finest resolution of a planet, in meters. The supplied value is clamped to the minimal 1 millimeter resolution.
Returns:RED_OK if the operation has succeeded,

RED_WORKFLOW_ERROR if the simulation has begun already.

virtual double GetPlanetLandscapeOpsTime() const = 0
Returns:The time allowed to planet landscape operations per frame.
virtual void SetPlanetLandscapeOpsTime(double iTime) = 0

Sets the time allowed to planet landscape operations per frame.

This is the maximal time allowed per frame dedicated to the planet geometry update. Lowering this number smoothes the framerate but the landscape can take longer to update and to show at full quality. Increasing this number will on the other hand favor landscape update speed. In the latter case, depending on the data available from calculating threads, the FPS may suffer some variations.

Parameters:iTime – The time allowed in [ 1.0, 100.0 ]. Default is 5.0
virtual int GetThreadsCount() const = 0

Return the number of auxiliary threads used for all the calculations.

virtual void SetThreadsCount(int iThreadsCount) = 0

Sets the number of auxiliary threads used for all the calculations.

The default value for this setting is 4096.

Parameters:iThreadsCount – The number of auxiliary threads. Max value is 4096.
virtual int GetPlanetLandscapeThreadsCount() const = 0

Return the number of auxiliary threads used to calculate the landscape.

virtual void SetPlanetLandscapeThreadsCount(int iThreadsCount) = 0

Sets the number of auxiliary threads used to calculate the landscape.

The default value for this setting is 4096.

Parameters:iThreadsCount – The number of auxiliary threads. If 0, the landscape is calculated on the application update thread. Max value is 4096.
virtual double GetGeometryGIUpdateTime() const = 0
Returns:The geometry global illumination update time in milliseconds.
virtual void SetGeometryGIUpdateTime(double iTime) = 0

Sets the amount of time allowed to update global illumination caches for geometries.

Geometries may need an update, mostly for dynamic global illumination caches. This is the amount of time allowed each frame to perform these update tasks. If 0.0 milliseconds are allowed, geometry updates are still processed at minimal performance rate.

Parameters:iTime – The allowed time in milliseconds. The provided value is forced to be at least 0.
virtual void SetSSAO(bool iEnabled) = 0

Enables or disables the SSAO.

Parameters:iEnabled – True to enable the SSAO, false to disable it.
virtual bool HasSSAO() const = 0

Tests if the SSAO is enabled or not.

Returns:true if the SSAO is enabeld, false otherwise.
virtual void SetSSAORadius(double iRadius) = 0

Sets the SSAO radius.

Parameters:iRadius – The Screen Space Ambient Occlusion radius in meters.
virtual double GetSSAORadius() const = 0

Gets the radius of the SSAO effect.

Returns:the SSAO radius in meters.
virtual void SetSSAOSamplesCount(int iCount) = 0

Sets the number of samples to compute the SSAO.

Parameters:iCount – Number of SSAO samples.
virtual int GetSSAOSamplesCount() const = 0

Gets the number of samples to compute the SSAO.

Returns:the number of SSAO samples.
virtual void SetSSRStrength(double iStrength) = 0

Sets the strength of the SSR effect. Set 0 to disable the SSR.

Parameters:iStrength – The strength of the SSR effect between 0 and 1.
virtual double GetSSRStrength() const = 0

Gets the strength of the SSR effect.

Returns:the strength of the SSR effect between 0 and 1.
virtual void SetSSRRayResolution(double iResolution) = 0

Sets the resolution of the SSR ray marching between 0 and 1.

The resolution is the number of samples per pixel. Its value is strictly greater than 0 and lower or equal to 1. Set to 1 for the highest quality with a ray marching on every pixel. Set to lower values to reduces the quality by spacing the samples.

Parameters:iResolution – The ray marching resolution.
virtual double GetSSRRayResolution() const = 0

Gets the resolution of the SSR ray marching between 0 and 1.

The resolution is the number of samples per pixel. Its value is strictly greater than 0 and lower or equal to 1.

Returns:the resolution of the SSR.
virtual void SetSSRBorderFade(int iPixelCount) = 0

Sets the distance to the screen border to start to fade out the effect.

Parameters:iPixelCount – The fade distance to the border in pixels.
virtual int GetSSRBorderFade() const = 0

Gets the distance where the effect fades out to the screen border.

Returns:the number of pixel from the border.
virtual void SetSSRCameraFade(double iDirection) = 0

Sets the direction for which the SSR starts to fade when looking at the camera.

Parameters:iDirection – The camera direction between 0 and 1. 0 = no fading.
virtual double GetSSRCameraFade() const = 0

Gets the direction for which the SSR starts to fade when looking at the camera.

Returns:the camera direction between 0 and 1. 0 = no fading.
virtual void SetSSRObjectThickness(double iThickness) = 0

Sets the object thickness for computing the SSR.

Parameters:iThickness – The object thickness in meters.
virtual double GetSSRObjectThickness() const = 0

Gets the object thickness for computing the SSR.

Returns:the thickness in meters.
virtual void SetSSRRefiningSteps(int iStepsCount) = 0

Sets the number of refining step after the first raymarching of the SSR.

Parameters:iStepsCount – The number of additionnal steps.
virtual int GetSSRRefiningSteps() const = 0

Gets the number of refining step after the first raymarching of the SSR.

Returns:The number of additionnal steps.
virtual void SetSSRRenderingResolution(int iResolution) = 0

Sets the rendering resolution of the SSR.

Sets the SSR downscaling factor in [ 1, 4 ]. The SSR rendering resolution is lowered by 1 << iScale. So setting iScale to 2 reduces the rendering resolution of clouds by 2 in width and height, so 1/4 pixels.

Parameters:iScale – values 1 = x1 rendering, 2 = x1/4, 3 = x1/9, 4 = x1/16.
virtual int GetSSRRenderingResolution() const = 0

Gets the rendering resolution of the SSR.

Returns:The downsize resolution.