raisin::RenderQualitySettings
struct · #include <rayrai/RenderQuality.hpp>
Explicit runtime quality settings for viewer rendering.
The struct stores its fields as a flat layout for historical reasons; the flat fields are the source of truth. For authoring, new code may use the grouped sub-config accessors — shadows(), bloom(), depthOfField(), fog(), toneMapping(), temporalAa() — and the matching set*() writers, which copy to and from the flat fields.
Use RenderQualitySettings::preset(RenderQualityPreset) to start from a known-good configuration, then apply with RayraiWindow::setRenderQualitySettings(). That call clamps many fields to the ranges noted on them and throws std::invalid_argument for invalid temporal-AA parameters; the remaining noted ranges are applied when the value is uploaded to the shaders.
Nested classes
structBloomSettings — Bloom / glow controls.structDepthOfFieldSettings — Depth-of-field controls.structFogSettings — Distance / height / volumetric fog controls.structShadowsSettings — Main directional shadow and cascade controls (additional-light shadow fields are not included).structTemporalAaSettings — Temporal antialiasing controls.structToneMappingSettings — Tone-mapping + color-grade controls.
Public member functions
shadows
ShadowsSettings shadows() constRead a snapshot of the shadows sub-config from the flat fields.
Returns Copy of the main shadow and cascade fields (additional-light shadow fields excluded).
setShadows
void setShadows(const ShadowsSettings &s)Write the shadows sub-config back into the flat fields.
Parameters
| Parameter | Description |
|---|---|
s | Values to store. |
bloom
BloomSettings bloom() constRead a snapshot of the bloom sub-config from the flat fields.
Returns Copy of the bloom* fields.
setBloom
void setBloom(const BloomSettings &b)Write the bloom sub-config back into the flat fields.
Parameters
| Parameter | Description |
|---|---|
b | Values to store. |
depthOfField
DepthOfFieldSettings depthOfField() constRead a snapshot of the depth-of-field sub-config from the flat fields.
Returns Copy of the depthOfField* fields.
setDepthOfField
void setDepthOfField(const DepthOfFieldSettings &d)Write the depth-of-field sub-config back into the flat fields.
Parameters
| Parameter | Description |
|---|---|
d | Values to store. |
fog
FogSettings fog() constRead a snapshot of the fog sub-config from the flat fields.
Returns Copy of the distance/height/volumetric fog fields (wind and animation excluded).
setFog
void setFog(const FogSettings &f)Write the fog sub-config back into the flat fields.
Parameters
| Parameter | Description |
|---|---|
f | Values to store. |
toneMapping
ToneMappingSettings toneMapping() constRead a snapshot of the tone-mapping and color sub-config from the flat fields.
Returns Copy of the tone-mapping, auto-exposure and color-grade fields (colorMode excluded).
setToneMapping
void setToneMapping(const ToneMappingSettings &t)Write the tone-mapping and color sub-config back into the flat fields.
Parameters
| Parameter | Description |
|---|---|
t | Values to store. |
temporalAa
TemporalAaSettings temporalAa() constRead a snapshot of the temporal-AA sub-config from the flat fields.
Returns Copy of the temporalAa* fields.
setTemporalAa
void setTemporalAa(const TemporalAaSettings &a)Write the temporal-AA sub-config back into the flat fields.
Parameters
| Parameter | Description |
|---|---|
a | Values to store. |
Static member functions
preset static
static RenderQualitySettings preset(RenderQualityPreset p)Build a RenderQualitySettings for the given preset.
Companion to the existing RenderQualityPreset enum so the type that names the presets can also produce them. Delegates to RayraiWindow::defaultRenderQualitySettings() (defined in RenderQualityDefaults.cpp). The result is not clamped until it is passed to RayraiWindow::setRenderQualitySettings().
Parameters
| Parameter | Description |
|---|---|
p | Preset to build. |
Returns Struct defaults with the preset's overrides applied.
Public attributes
Background and main light
The main light is directional. Struct defaults are what Fast and Custom start from; in the simple-shading path there is no IBL, so a moderate ambient keeps smooth/metallic surfaces from going black.
backgroundColorRgb255
glm::vec4 backgroundColorRgb255Clear color, RGBA in 0..255 (shown where no sky/environment is drawn).
mainLightAmbient
glm::vec3 mainLightAmbientMain light ambient color (linear RGB); also the sky fill on the simple-shading path.
mainLightDiffuse
glm::vec3 mainLightDiffuseMain light diffuse color/intensity (linear RGB); also tints the procedural sky sun.
mainLightSpecular
glm::vec3 mainLightSpecularMain light specular color (linear RGB).
mainLightDirection
glm::vec3 mainLightDirectionDirection the main light travels (from the light toward the scene); normalized on apply, ignored if zero.
Main directional shadow
The shadow box is an orthographic volume of half-size shadowOrthoHalfSize centered shadowCenterOffset metres in front of the camera. Ranges in brackets are applied by RayraiWindow::setRenderQualitySettings().
shadowResolution
int shadowResolutionMain shadow-map edge length, texels (at least 256); additional shadow maps scale from it.
shadowBias
float shadowBiasDepth bias against shadow acne.
shadowStrength
float shadowStrengthShadow darkening, 0 = none, 1 = full.
shadowPcfRadius
float shadowPcfRadiusPCF filter radius, shadow-map texels.
directionalShadowSoftnessDegrees
float directionalShadowSoftnessDegreesSun angular diameter, degrees, [0, 4]; 0 keeps plain PCF.
directionalShadowSoftnessMaxRadius
float directionalShadowSoftnessMaxRadiusUpper bound of the blocker-based filter radius, shadow-map texels, [1, 16].
shadowContactHardening
bool shadowContactHardeningScale the PCF radius with receiver depth (harder near contact).
shadowContactHardeningMinRadius
float shadowContactHardeningMinRadiusSmallest contact-hardening filter radius, texels, [0, 16].
shadowContactHardeningMaxRadius
float shadowContactHardeningMaxRadiusLargest contact-hardening filter radius, texels, [min radius, 32].
shadowContactHardeningDepthScale
float shadowContactHardeningDepthScaleDepth-to-radius scale for contact hardening, [0, 4].
shadowDebugOverlayEnabled
bool shadowDebugOverlayEnabledShow the ImGui shadow debug overlay in the viewer.
shadowOrthoHalfSize
float shadowOrthoHalfSizeHalf-size of the main directional shadow box, metres.
shadowNear
float shadowNearShadow projection near plane, metres.
shadowFar
float shadowFarShadow projection far plane, metres (also the default cascade distance).
shadowCenterOffset
float shadowCenterOffsetDistance ahead of the camera where the shadow box is centered, metres.
Fog
Distance fog, exponential height fog and raymarched volumetric fog. With weather enabled, the weather densities are combined with these by max().
fogDensity
float fogDensityDistance fog: transmittance = exp(-(distance * fogDensity)^2), 1/m.
fogColorOverrideEnabled
bool fogColorOverrideEnabledUse fogColor instead of the background color (backgroundColorRgb255) for fog.
fogColor
glm::vec3 fogColorDistance/height fog color when fogColorOverrideEnabled (linear RGB, >= 0).
heightFogEnabled
bool heightFogEnabledEnable exponential height fog (in addition to distance fog).
heightFogDensity
float heightFogDensityHeight-fog extinction at heightFogBaseHeight, 1/m.
heightFogBaseHeight
float heightFogBaseHeightWorld Z where heightFogDensity applies, metres.
heightFogFalloff
float heightFogFalloffExponential density falloff per metre above the base height.
volumetricFogEnabled
bool volumetricFogEnabledEnable raymarched volumetric fog in the post-process pass.
volumetricFogDensity
float volumetricFogDensityVolumetric fog density, [0, 1].
volumetricFogNoiseScale
float volumetricFogNoiseScaleSpatial frequency of the fog noise, [0.001, 128].
volumetricFogNoiseStrength
float volumetricFogNoiseStrengthNoise modulation of the fog density, [0, 1].
volumetricFogColor
glm::vec3 volumetricFogColorVolumetric fog color (linear RGB, >= 0).
volumetricFogAnisotropy
float volumetricFogAnisotropyHenyey-Greenstein phase g, [-0.85, 0.85]; > 0 scatters forward.
volumetricFogAnimationTimeSeconds
float volumetricFogAnimationTimeSecondsTime driving the fog noise animation, seconds (>= 0).
volumetricFogWindDirection
glm::vec2 volumetricFogWindDirectionFog drift direction in world XY (normalized; zero becomes +X).
volumetricFogWindSpeed
float volumetricFogWindSpeedFog drift speed, [0, 80].
volumetricFogTurbulenceSpeed
float volumetricFogTurbulenceSpeedFog noise evolution speed, [0, 20].
Volumetric lighting
volumetricLightingEnabled
bool volumetricLightingEnabledEnable volumetric (in-scattered) main-light shafts through the fog.
volumetricLightStrength
float volumetricLightStrengthVolumetric light intensity, [0, 8].
volumetricLightDecay
float volumetricLightDecayVolumetric light decay, [0, 0.99].
volumetricLightSamples
int volumetricLightSamplesVolumetric light ray samples, [4, 32].
Shading, tone mapping and color
Shading path selection, tone curve, exposure and post-process color controls.
gamma
float gammaDisplay gamma: output = pow(color, 1 / gamma); at least 0.01.
highFidelityPbr
bool highFidelityPbrUse the full PBR shader path (IBL, environment maps, PBR tone curves).
forceSimpleMaterialShading
bool forceSimpleMaterialShadingRender every mesh with the simple (non-PBR) shader.
pbrToneMapping
bool pbrToneMappingApply the colorMode tone curve with pbrExposure (high-fidelity PBR / linear HDR paths).
colorMode
ViewerColorMode colorModeTone curve used when pbrToneMapping is on.
pbrExposure
float pbrExposureExposure multiplier applied before the tone curve.
autoExposureEnabled
bool autoExposureEnabledAdapt exposure from the average brightness of the previous frame.
autoExposureKey
float autoExposureKeyTarget average luminance of the displayed frame (approximately linear).
autoExposureSpeed
float autoExposureSpeedFraction of the remaining exposure error corrected per frame, [0, 1].
autoExposureMinFactor
float autoExposureMinFactorLower bound of the auto-exposure multiplier.
autoExposureMaxFactor
float autoExposureMaxFactorUpper bound of the auto-exposure multiplier.
viewerWhiteBalance
glm::vec3 viewerWhiteBalancePer-channel RGB gain applied in the post-process pass (>= 0).
viewerSaturation
float viewerSaturationPost-process saturation, 1 = unchanged, 0 = grayscale (>= 0).
viewerColorGradePreset
ColorGradePreset viewerColorGradePresetColor-grade look applied at the end of the post chain.
viewerColorGradeStrength
float viewerColorGradeStrengthBlend between ungraded and graded color, [0, 1].
Environment lighting and sky
Image-based lighting and the procedural sky. Environment mips are chosen as clamp(maxLod * r * (2 - r) + bias, 0, maxLod) for roughness r.
pbrEnvironmentMaxLod
float pbrEnvironmentMaxLodHighest environment mip used for rough reflections; 0 always samples mip 0.
pbrEnvironmentMipLodBias
float pbrEnvironmentMipLodBiasBias added to the roughness-based environment mip, [-1, 2].
pbrEnvironmentRotation
float pbrEnvironmentRotationRotation of environment maps and the sky about world +Z, radians.
pbrEnvironmentIntensity
float pbrEnvironmentIntensityImage-based lighting intensity multiplier (high-fidelity PBR).
pbrEnvironmentLightingTint
glm::vec3 pbrEnvironmentLightingTintLinear RGB illumination for the procedural fallback, independent of the visible sky/fog palette. HDR environment maps retain their captured color.
pbrEnvironmentSkyTint
glm::vec3 pbrEnvironmentSkyTintTint of the upper sky in the background and procedural environment.
pbrEnvironmentHorizonTint
glm::vec3 pbrEnvironmentHorizonTintTint of the horizon band.
pbrEnvironmentGroundTint
glm::vec3 pbrEnvironmentGroundTintTint of the lower hemisphere (ground).
pbrEnvironmentHorizonStrength
float pbrEnvironmentHorizonStrengthWidth/strength of the horizon band, [0, 1].
environmentBackgroundTint
glm::vec3 environmentBackgroundTintTint applied to the drawn sky/environment background (>= 0).
environmentBackgroundExposureScale
float environmentBackgroundExposureScaleBrightness multiplier of the drawn sky/environment background (>= 0).
proceduralSkyBackgroundEnabled
bool proceduralSkyBackgroundEnabledDraw the procedural sky when no environment map is set.
proceduralSkySunStrength
float proceduralSkySunStrengthBrightness of the procedural sun disk (>= 0).
proceduralSkySunSize
float proceduralSkySunSizeAngular radius of the procedural sun disk, radians.
Procedural clouds
proceduralCloudLayerEnabled
bool proceduralCloudLayerEnabledDraw the procedural cloud layer (also requires cloudQuality != Off).
proceduralCloudCoverage
float proceduralCloudCoverageFraction of sky covered by clouds, [0, 1].
proceduralCloudDensity
float proceduralCloudDensityCloud opacity, [0, 1].
proceduralCloudScale
float proceduralCloudScaleCloud noise scale.
proceduralCloudSoftness
float proceduralCloudSoftnessCloud edge softness.
proceduralCloudOffset
glm::vec2 proceduralCloudOffsetOffset in cloud-noise space; animate it to move the clouds (no automatic drift).
proceduralCloudTint
glm::vec3 proceduralCloudTintCloud color (linear RGB, >= 0).
cloudQuality
CloudQuality cloudQualityCloud quality path. Off disables clouds entirely; Texture uses the cheap 2D path; Volumetric uses raymarched 3D noise. Set by the presets.
cloudShadowProjectionEnabled
bool cloudShadowProjectionEnabledProject procedural cloud shadows onto the scene.
cloudShadowStrength
float cloudShadowStrengthCloud-shadow darkening, [0, 1].
cloudShadowScale
float cloudShadowScaleCloud-shadow noise scale.
Material response and reflective ground
pbrKeyLightIntensity
float pbrKeyLightIntensityMain (key) light intensity multiplier in the PBR shaders (>= 0).
specularAntiAliasing
bool specularAntiAliasingReduce specular aliasing on high-frequency normals (PBR).
specularAntiAliasingStrength
float specularAntiAliasingStrengthSpecular anti-aliasing strength, [0, 2].
reflectiveGround
bool reflectiveGroundRender the default ground as a planar-reflective material.
reflectiveGroundRoughness
float reflectiveGroundRoughnessRoughness of the reflective ground.
reflectiveGroundMetallic
float reflectiveGroundMetallicMetallic factor of the reflective ground.
Lens character, stylized effects and shading extras
Mostly screen-space effects applied in the post-process pass, plus detail normals and subsurface wrap in the PBR shaders. All are off by default; strengths are clamped to the noted ranges when uploaded.
fxaaEnabled
bool fxaaEnabledEnable FXAA in the post-process pass.
viewerVignetteStrength
float viewerVignetteStrengthRadial darkening, [0, 1].
viewerChromaticAberrationStrength
float viewerChromaticAberrationStrengthRGB channel offset, [0, 1].
viewerFilmGrainStrength
float viewerFilmGrainStrengthAnimated luma noise, [0, 1].
aerialPerspectiveEnabled
bool aerialPerspectiveEnabledApply atmospheric aerial perspective to distant geometry (needs the atmosphere volume).
aerialPerspectiveStrength
float aerialPerspectiveStrengthAerial-perspective strength multiplier.
detailNormalEnabled
bool detailNormalEnabledAdd procedural world-space micro-normal detail (high-fidelity PBR).
detailNormalScale
float detailNormalScaleWorld-space noise frequency, 1/m (>= 0.001).
detailNormalStrength
float detailNormalStrengthDetail strength, [0, 1]; small values look natural.
viewerSubsurfaceWrap
float viewerSubsurfaceWrapDiffuse wrap amount, [0, 1]; 0 = standard Lambert.
viewerSubsurfaceTint
glm::vec3 viewerSubsurfaceTintTint of the wrapped light (>= 0); default is warm.
lightShaftsEnabled
bool lightShaftsEnabledEnable screen-space sun light shafts (god rays).
lightShaftsStrength
float lightShaftsStrengthAdditive shaft intensity (>= 0).
lightShaftsDecay
float lightShaftsDecayPer-step radial decay, [0.5, 0.999].
lightShaftsDensity
float lightShaftsDensitySample step density (effective range [0.1, 2]).
lensFlareGhostStrength
float lensFlareGhostStrengthIntensity of the ghost chain (>= 0); 0 disables.
lensFlareStreakStrength
float lensFlareStreakStrengthIntensity of the horizontal streak (>= 0); 0 disables.
lensFlareTint
glm::vec3 lensFlareTintGhost/streak color; default is a cool blue.
contactShadowsEnabled
bool contactShadowsEnabledEnable screen-space contact shadows.
contactShadowsLength
float contactShadowsLengthRaymarch length, metres, [0, 0.5].
contactShadowsStrength
float contactShadowsStrengthDarkening, [0, 1].
contactShadowsThickness
float contactShadowsThicknessLinear-depth tolerance, metres (>= 0.01).
motionBlurEnabled
bool motionBlurEnabledEnable the directional motion-blur post effect.
motionBlurDirection
glm::vec2 motionBlurDirectionBlur vector in screen-UV units, scaled by motionBlurStrength.
motionBlurStrength
float motionBlurStrengthMotion-blur amount, [0, 1].
ssrEnabled
bool ssrEnabledEnable screen-space reflections.
ssrStrength
float ssrStrengthReflection blend amount, [0, 1].
ssrSteps
int ssrStepsRaymarch steps, [4, 64].
ssrMaxDistance
float ssrMaxDistanceMaximum reflection ray length, metres.
ssrThickness
float ssrThicknessDepth tolerance for a ray hit, metres.
lensDistortionEnabled
bool lensDistortionEnabledEnable radial lens distortion.
lensDistortionStrength
float lensDistortionStrengthSigned, [-2, 2]: positive = barrel, negative = pincushion.
lensDistortionCenter
glm::vec2 lensDistortionCenterDistortion center in screen UV.
pixelateEnabled
bool pixelateEnabledEnable pixelation.
pixelateBlockSize
int pixelateBlockSizeBlock size, pixels, [1, 64].
nightVisionEnabled
bool nightVisionEnabledEnable the night-vision filter.
nightVisionStrength
float nightVisionStrengthBlend amount, [0, 1].
nightVisionGain
float nightVisionGainLuminance gain before the phosphor curve (>= 0.05).
ditherEnabled
bool ditherEnabledEnable output dithering.
ditherStrength
float ditherStrengthNoise amplitude, [0, 0.05] (about 1/255 by default).
thermalEnabled
bool thermalEnabledEnable the thermal (heat-map palette) filter.
thermalStrength
float thermalStrengthBlend amount, [0, 1].
thermalGain
float thermalGainLuminance gain before the palette lookup (>= 0.05).
scanlineEnabled
bool scanlineEnabledEnable CRT scanlines.
scanlineStrength
float scanlineStrengthScanline darkening, [0, 1].
scanlineFrequency
float scanlineFrequencyLines per frame height (>= 20).
letterboxEnabled
bool letterboxEnabledEnable letterbox bars.
letterboxAspect
float letterboxAspectTarget aspect ratio; bars appear when it is wider than the frame.
letterboxColor
glm::vec3 letterboxColorBar color (linear RGB).
underwaterEnabled
bool underwaterEnabledEnable the underwater overlay.
underwaterTint
glm::vec3 underwaterTintWater color (linear RGB).
underwaterCausticStrength
float underwaterCausticStrengthCaustic intensity (>= 0); 0 disables caustics.
underwaterCausticScale
float underwaterCausticScaleCaustic pattern scale.
underwaterDepthExtinction
float underwaterDepthExtinctionDepth-based fade toward the water color (>= 0).
heatHazeEnabled
bool heatHazeEnabledEnable heat-haze distortion.
heatHazeStrength
float heatHazeStrengthDistortion amount, [0, 1].
heatHazeFrequency
float heatHazeFrequencyRipple frequency (>= 0.5).
heatHazeSpeed
float heatHazeSpeedRipple animation speed (>= 0).
heatHazeMaxY
float heatHazeMaxYScreen-UV height (0 = bottom) above which there is no haze, [0, 1].
zoomBlurEnabled
bool zoomBlurEnabledEnable radial zoom blur.
zoomBlurStrength
float zoomBlurStrengthBlur amount, [0, 1].
zoomBlurCenter
glm::vec2 zoomBlurCenterBlur center in screen UV.
zoomBlurInnerRadius
float zoomBlurInnerRadiusSharp radius around the center in UV units, [0, 1].
posterizeEnabled
bool posterizeEnabledEnable color posterization.
posterizeLevels
int posterizeLevelsLevels per channel, [2, 32].
starburstEnabled
bool starburstEnabledEnable sun diffraction spikes.
starburstStrength
float starburstStrengthSpike intensity (>= 0).
starburstSpikes
int starburstSpikesNumber of spikes, [1, 16].
starburstAngleOffset
float starburstAngleOffsetSpike rotation, radians.
starburstRadius
float starburstRadiusSpike length in screen UV, [0.01, 1].
starburstTint
glm::vec3 starburstTintSpike color (linear RGB).
Bloom
Applied in the post-process pass.
bloomEnabled
bool bloomEnabledEnable bloom (off in every preset; presets still tune the parameters below).
bloomThreshold
float bloomThresholdBrightness where bloom starts.
bloomStrength
float bloomStrengthBloom intensity.
bloomRadius
float bloomRadiusBlur radius scale (in source texels).
bloomKnee
float bloomKneeSoft-threshold width above bloomThreshold.
bloomQuality
int bloomQuality1 or less: 12-tap gather; 2: 24 taps; 3 or more: 4-level downsample/upsample chain.
bloomSourceClamp
float bloomSourceClampClamp on bloom source color to suppress fireflies; <= 0 disables.
bloomAnamorphic
float bloomAnamorphicHorizontal stretch of the bloom, [0, 1].
bloomDirtStrength
float bloomDirtStrengthLens-dirt modulation of the bloom, [0, 1].
bloomDirtScale
float bloomDirtScaleLens-dirt pattern scale, [0.05, 32].
bloomDirtTexture
unsigned int bloomDirtTextureOptional GL 2D lens-dirt texture; 0 = none.
bloomBlendMode
GlowBlendMode bloomBlendModeHow bloom is combined with the scene.
bloomMix
float bloomMixScene attenuation for GlowBlendMode::Mix, [0, 1].
Post-process debug
postProcessDebugMode
PostProcessDebugMode postProcessDebugModeReplace the final image with a post-process debug view.
Ambient occlusion
Depth-based SSAO plus an optional short-range contact AO band.
screenSpaceAoEnabled
bool screenSpaceAoEnabledEnable screen-space ambient occlusion.
screenSpaceAoRadius
float screenSpaceAoRadiusAO sample radius: pixels, or metres when screenSpaceAoRadiusWorldSpace.
screenSpaceAoStrength
float screenSpaceAoStrengthAO darkening strength.
screenSpaceAoBias
float screenSpaceAoBiasMinimum depth difference counted as occlusion.
screenSpaceAoSamples
int screenSpaceAoSamplesAO samples, [4, 24].
screenSpaceAoFalloff
float screenSpaceAoFalloffDepth range falloff relative to the radius.
screenSpaceAoRadiusWorldSpace
bool screenSpaceAoRadiusWorldSpaceInterpret the AO radii in metres instead of pixels.
screenSpaceAoMaxPixelRadius
float screenSpaceAoMaxPixelRadiusCap on the projected AO radius, pixels, [1, 256].
screenSpaceAoGeometryAware
bool screenSpaceAoGeometryAwareWeight AO samples by the reconstructed surface normal and distance.
contactAoRadius
float contactAoRadiusShort-range AO radius (same units as screenSpaceAoRadius), >= 0.
contactAoStrength
float contactAoStrengthShort-range AO strength, >= 0.
contactAoSamples
int contactAoSamplesShort-range AO samples, [4, 24].
contactAoFalloff
float contactAoFalloffShort-range AO falloff, >= 0.001.
screenSpaceAoDenoiseEnabled
bool screenSpaceAoDenoiseEnabledApply a depth-aware blur to the AO.
screenSpaceAoDenoiseStrength
float screenSpaceAoDenoiseStrengthDenoise blend amount, [0, 1].
screenSpaceAoDenoiseRadius
int screenSpaceAoDenoiseRadius1 = 4-tap, 2 = 8-tap denoise kernel.
screenSpaceAoDenoiseDepthSigma
float screenSpaceAoDenoiseDepthSigmaDepth tolerance relative to view depth, >= 0.001.
Screen-space indirect lighting
screenSpaceIndirectLightingEnabled
bool screenSpaceIndirectLightingEnabledEnable screen-space one-bounce indirect lighting.
screenSpaceIndirectLightingRadius
float screenSpaceIndirectLightingRadiusGather radius, metres (>= 0).
screenSpaceIndirectLightingStrength
float screenSpaceIndirectLightingStrengthIndirect lighting intensity, [0, 4].
screenSpaceIndirectLightingSamples
int screenSpaceIndirectLightingSamplesSamples, [4, 24].
screenSpaceIndirectLightingFalloff
float screenSpaceIndirectLightingFalloffDistance falloff exponent factor (>= 0.001).
screenSpaceIndirectLightingNormalRejection
float screenSpaceIndirectLightingNormalRejectionReject samples whose surface faces away, [0, 1].
screenSpaceIndirectLightingSaturation
float screenSpaceIndirectLightingSaturationSaturation of the gathered light, [0, 4].
Draw ordering and depth prepasses
opaqueDepthPrepass
bool opaqueDepthPrepassDepth-only prepass for opaque geometry (skipped for scenes with 16 or fewer opaque draws).
frontToBackOpaqueInstancedOrdering
bool frontToBackOpaqueInstancedOrderingSort opaque instanced batches front to back.
foliageAlphaDepthPrepass
bool foliageAlphaDepthPrepassDepth prepass for alpha-tested foliage (high-fidelity PBR only).
Depth of field
depthOfFieldEnabled
bool depthOfFieldEnabledEnable depth of field.
depthOfFieldFocusDistance
float depthOfFieldFocusDistanceFocus distance from the camera, metres.
depthOfFieldFocusRange
float depthOfFieldFocusRangeWidth of the fully sharp band around the focus distance, metres.
depthOfFieldMaxRadius
float depthOfFieldMaxRadiusMaximum blur (circle of confusion) radius, pixels.
Texture filtering, anti-aliasing and resolution
textureAnisotropy
float textureAnisotropyAnisotropic filtering level for material textures.
textureMipLodBias
float textureMipLodBiasMip LOD bias for material textures (positive = blurrier).
viewerMsaaSamples
int viewerMsaaSamplesScene MSAA sample count (forced to 1 for reprojected TAA).
alphaToCoverage
bool alphaToCoverageEnable alpha-to-coverage when the scene renders with MSAA.
temporalAaEnabled
bool temporalAaEnabledEnable temporal anti-aliasing.
temporalAaBlend
float temporalAaBlendLegacy method: history weight, [0, 0.95].
temporalAaJitterScale
float temporalAaJitterScaleScale of the sub-pixel projection jitter; 0 disables jitter.
temporalAaMethod
TemporalAaMethod temporalAaMethodTemporal AA algorithm.
temporalAaCurrentWeight
float temporalAaCurrentWeightNew sample weight for Reprojected; smaller values accumulate more frames. Must be finite and in [0.02, 1] (setRenderQualitySettings() throws otherwise).
temporalAaSharpness
float temporalAaSharpnessBounded output sharpening; the stored linear history stays unsharpened. Must be finite and in [0, 1] (setRenderQualitySettings() throws otherwise).
viewerRenderScale
float viewerRenderScaleViewer render resolution scale, [0.25, 1]; below 1 renders low-res then upscales.
viewerUpscaleFilter
ViewerUpscaleFilter viewerUpscaleFilterFilter used when viewerRenderScale < 1.
Shadow budget, cascades and additional shadows
Additional lights get shadow maps in order of their score, up to shadowedLightBudget - 1. Ranges in brackets are applied by RayraiWindow::setRenderQualitySettings().
shadowsEnabled
bool shadowsEnabledMaster switch for shadow rendering.
shadowedLightBudget
int shadowedLightBudgetShadowed lights including the main light; budget - 1 additional lights get shadow maps (max 8).
pointShadowPolicy
PointShadowPolicy pointShadowPolicyWhether point lights can receive shadow maps.
maxPointShadowLights
int maxPointShadowLightsMaximum point lights with shadow cubemaps, [0, 8].
additionalShadowResolutionScale
float additionalShadowResolutionScaleAdditional spot/directional/area shadow-map size relative to shadowResolution.
pointShadowResolutionScale
float pointShadowResolutionScalePoint-light cube face size relative to shadowResolution.
minAdditionalShadowResolution
int minAdditionalShadowResolutionLower bound for additional shadow-map sizes, texels.
shadowSlopeBiasScale
float shadowSlopeBiasScaleSlope-scaled depth bias, [0, 4].
shadowNormalOffset
float shadowNormalOffsetReceiver normal offset for shadow lookups, metres, [0, 0.02].
directionalShadowCascadeCount
int directionalShadowCascadeCountDirectional shadow cascades, [1, 4]; 1 = single shadow map.
directionalShadowCascadeLambda
float directionalShadowCascadeLambdaSplit blend, [0, 1]: 0 = uniform, 1 = logarithmic.
directionalShadowCascadeMaxDistance
float directionalShadowCascadeMaxDistanceShadowed view distance, metres; 0 uses shadowFar.
directionalShadowCascadeSplitOverrides
std::array<float, 4> directionalShadowCascadeSplitOverridesExplicit split distances (metres) between cascades; used only if strictly increasing within range.
additionalShadowBiasScale
float additionalShadowBiasScaleAdditional (non-point) shadow bias = shadowBias * scale.
additionalShadowStrengthScale
float additionalShadowStrengthScaleDirectional extras: shadowStrength * scale; spot/area/point: used directly as strength, [0, 1].
additionalShadowPcfRadiusScale
float additionalShadowPcfRadiusScaleAdditional shadow PCF radius = shadowPcfRadius * scale.
additionalShadowNormalOffsetScale
float additionalShadowNormalOffsetScaleAdditional shadow normal offset relative to shadowNormalOffset, [0, 4].
additionalShadowAtlasPlanningEnabled
bool additionalShadowAtlasPlanningEnabledPack additional 2D shadow maps into one atlas.
additionalShadowAtlasResolution
int additionalShadowAtlasResolutionShadow atlas edge length, texels, [512, 16384].
additionalShadowAtlasPadding
int additionalShadowAtlasPaddingGap between atlas tiles, texels, [0, 16].
pointShadowBiasScale
float pointShadowBiasScalePoint-light shadow bias = shadowBias * scale.
pointShadowFar
float pointShadowFarPoint-light shadow far plane, metres.
updateShadowsEveryFrame
bool updateShadowsEveryFrameRe-render shadow maps every frame; otherwise only when the scene, light or camera moves enough.
Additional-light selection
maxAdditionalLightsPerFrame
int maxAdditionalLightsPerFrameAdditional lights shaded per frame, [0, 16], chosen by influence near the view.
minAdditionalLightInfluence
float minAdditionalLightInfluenceAdditional lights with an influence score at or below this are skipped.
additionalLightContributionThreshold
float additionalLightContributionThresholdOpt-in total scene-linear incident-radiance cutoff budget for local additional lights, before the material BRDF and exposure. Zero preserves unlimited lighting exactly. Not a bound on final HDR/specular pixel error. The budget is divided among uploaded lights; fade starts below that share.
Reflection probes and local irradiance
Probe filter sizes are used when a probe is captured with captureFilteredReflectionProbe() without explicit filter settings.
maxReflectionProbesPerSelection
int maxReflectionProbesPerSelectionReflection probes blended per object, [1, 2].
minReflectionProbeWeight
float minReflectionProbeWeightProbes with a weight at or below this are ignored.
reflectionProbeDebugOverlayEnabled
bool reflectionProbeDebugOverlayEnabledShow the ImGui reflection-probe debug overlay.
reflectionProbeFilteringEnabled
bool reflectionProbeFilteringEnabledFilter captured probes (irradiance, prefiltered specular, BRDF LUT) on the CPU.
reflectionProbeIrradianceResolution
int reflectionProbeIrradianceResolutionProbe irradiance face size, [0, 128]; 0 skips it.
reflectionProbeIrradianceSamples
int reflectionProbeIrradianceSamplesSamples per irradiance texel (>= 0).
reflectionProbePrefilteredResolution
int reflectionProbePrefilteredResolutionProbe prefiltered-specular face size, [0, 512]; 0 skips it.
reflectionProbePrefilteredMipLevels
int reflectionProbePrefilteredMipLevelsPrefiltered roughness mip levels (>= 0).
reflectionProbePrefilteredSamples
int reflectionProbePrefilteredSamplesSamples per prefiltered texel (>= 0).
reflectionProbeBrdfLutSize
int reflectionProbeBrdfLutSizeProbe BRDF LUT size, [0, 512]; 0 skips it.
reflectionProbeBrdfLutSamples
int reflectionProbeBrdfLutSamplesSamples per BRDF LUT texel (>= 0).
localDiffuseIrradianceIntensity
float localDiffuseIrradianceIntensityIntensity of local diffuse irradiance, [0, 4].
localDiffuseIrradianceSaturation
float localDiffuseIrradianceSaturationSaturation of local diffuse irradiance, [0, 4].
Imported lights
autoSelectImportedShadowLight
bool autoSelectImportedShadowLightPromote the dominant imported scene light to the main shadow caster on import.
Transparency and refraction
sortTransparentInstances
bool sortTransparentInstancesSort transparent instances back to front.
weightedBlendedOit
bool weightedBlendedOitUse weighted blended order-independent transparency (requires MSAA off).
transparentDepthPrepass
bool transparentDepthPrepassDepth prepass for transparent geometry.
transparentShadowDithering
bool transparentShadowDitheringTransparent casters write dithered (partial) shadows.
transparentShadowOpacityScale
float transparentShadowOpacityScaleOpacity multiplier for transparent shadow casters, [0, 4].
screenSpaceRefraction
bool screenSpaceRefractionOpaque-scene transmission for glass. Resolves MSAA before sampling; HDR is recommended. Does not trace through other transparent layers or exit faces.
screenSpaceRefractionStrength
float screenSpaceRefractionStrengthRefraction offset strength, [0, 1].
screenSpaceRefractionMaxPixels
float screenSpaceRefractionMaxPixelsMaximum refraction offset, pixels, [0, 96].
geometryRefraction
bool geometryRefractionOpt-in portable triangle tracing. Positive material thickness denotes a closed volume, but distances come from geometry, not the thickness factor.
geometryRefractionBackend
GeometryRefractionBackend geometryRefractionBackendAutomatic tries Vulkan hardware BVH traversal, then falls back to OpenGL. VulkanRayQuery explicitly requires that backend (errors do not silently fall back).
geometryRefractionSamples
int geometryRefractionSamplesPaths per pixel per frame, 1..64.
geometryRefractionMaxBounces
int geometryRefractionMaxBouncesPhysical scattering events, 1..128.
geometryRefractionProgressive
bool geometryRefractionProgressiveAccumulate samples over frames while the view and scene are unchanged.
geometryRefractionMaxSamples
int geometryRefractionMaxSamplesPer-pixel sample cap for progressive accumulation, [1, 1048576].
geometryRefractionLowDiscrepancy
bool geometryRefractionLowDiscrepancyUse quasi-Monte-Carlo sample sequences.
geometryRefractionAdaptive
bool geometryRefractionAdaptiveStop sampling converged pixels (needs geometryRefractionProgressive).
geometryRefractionMinSamples
int geometryRefractionMinSamplesSamples before a pixel may stop adaptively, [16, 1048576].
geometryRefractionRelativeError
float geometryRefractionRelativeErrorAdaptive relative error target, [0.02, 1].
geometryRefractionAbsoluteError
float geometryRefractionAbsoluteErrorAdaptive absolute error target, [0.001, 1e6].
geometryRefractionSeed
int geometryRefractionSeedRandom seed (>= 0).
geometryRefractionRevision
unsigned int geometryRefractionRevisionIncrement after editing a texture/environment in place to reset history.
transparentFogAlphaWeighted
bool transparentFogAlphaWeightedScale fog on transparent surfaces by their alpha.
transparentFogStrength
float transparentFogStrengthFog amount on transparent surfaces, [0, 1].
Weather materials
Wet and snow material overrides for PBR and foliage shaders. Weather overwrites these fields while it is enabled.
weatherWetMaterialEnabled
bool weatherWetMaterialEnabledEnable wet-surface shading.
weatherWetness
float weatherWetnessWetness, [0, 1].
weatherPuddleStrength
float weatherPuddleStrengthPuddle amount, [0, 1].
weatherRainRippleStrength
float weatherRainRippleStrengthRain ripples in puddles, [0, 1].
weatherRainRippleScale
float weatherRainRippleScaleRipple pattern scale, [0.1, 128].
weatherRainRipplePhase
float weatherRainRipplePhaseRipple animation phase; advance it to animate.
weatherWetAlbedoDarkening
float weatherWetAlbedoDarkeningAlbedo darkening when wet, [0, 0.85].
weatherWetRoughnessScale
float weatherWetRoughnessScaleRoughness multiplier when wet, [0.04, 1].
weatherWetSpecularBoost
float weatherWetSpecularBoostSpecular boost when wet, [0, 1].
weatherSnowMaterialEnabled
bool weatherSnowMaterialEnabledEnable snow-cover shading.
weatherSnowCoverage
float weatherSnowCoverageSnow coverage, [0, 1].
weatherSnowAccumulationStrength
float weatherSnowAccumulationStrengthSnow accumulation strength, [0, 1].
weatherSnowAlbedoBlend
float weatherSnowAlbedoBlendBlend toward snow albedo, [0, 1].
weatherSnowRoughness
float weatherSnowRoughnessRoughness of snow, [0.04, 1].
weatherSnowMetallicScale
float weatherSnowMetallicScaleMetallic multiplier under snow, [0, 1].
weatherSnowNormalSoftening
float weatherSnowNormalSofteningNormal-map softening under snow, [0, 1].
Foliage wind
foliageWindEnabled
bool foliageWindEnabledAnimate foliage vertices with wind.
foliageWindDirection
glm::vec2 foliageWindDirectionWind direction in world XY (normalized; zero becomes +X).
foliageWindSpeed
float foliageWindSpeedWind speed, [0, 80].
foliageWindTimeSeconds
float foliageWindTimeSecondsWind animation time, seconds; see RayraiWindow::advanceFoliageWindTime().
foliageWindGustStrength
float foliageWindGustStrengthGust amplitude, [0, 4].
foliageWindGustScale
float foliageWindGustScaleGust spatial scale, [0.001, 64].
foliageWindBranchBend
float foliageWindBranchBendBranch bending amount, [0, 2].
foliageWindLeafFlutter
float foliageWindLeafFlutterLeaf flutter amount, [0, 2].
Viewer fill lights
addViewerFillLights
bool addViewerFillLightsAdd a viewer fill light and a warm rim point light (as additional lights) when settings are applied.