LightsprintSDK 2021.08.08
rr::RRSolver::CalculateParameters Struct Reference

#include <RRSolver.h>

Inheritance diagram for rr::RRSolver::CalculateParameters:
rr::RRSolver::Multipliers

Public Member Functions

 CalculateParameters ()
 
bool operator== (const CalculateParameters &a) const
 
- Public Member Functions inherited from rr::RRSolver::Multipliers
 Multipliers ()
 
bool operator== (const Multipliers &a) const
 
bool operator!= (const Multipliers &a) const
 
Multipliers operator* (const Multipliers &a) const
 

Public Attributes

unsigned materialEmittanceStaticQuality
 
unsigned materialEmittanceVideoQuality
 
bool materialEmittanceUsePointMaterials
 
unsigned materialTransmittanceStaticQuality
 
unsigned materialTransmittanceVideoQuality
 
unsigned environmentStaticQuality
 
unsigned environmentVideoQuality
 
unsigned qualityIndirectDynamic
 
unsigned qualityIndirectStatic
 
unsigned delayDDI
 
float secondsBetweenDDI
 
bool skipRRSolver
 
- Public Attributes inherited from rr::RRSolver::Multipliers
RRReal lightMultiplier
 
RRReal environmentMultiplier
 
RRReal materialEmittanceMultiplier
 

Detailed Description

Optional parameters of calculate().

Constructor & Destructor Documentation

◆ CalculateParameters()

rr::RRSolver::CalculateParameters::CalculateParameters ( )
inline

Sets default parameters. This is used if you send nullptr instead of parameters.

Member Function Documentation

◆ operator==()

bool rr::RRSolver::CalculateParameters::operator== ( const CalculateParameters a) const

Member Data Documentation

◆ materialEmittanceStaticQuality

unsigned rr::RRSolver::CalculateParameters::materialEmittanceStaticQuality

Only for Fireball solver: Specifies what to do when emissive texture changes.

  • 0 disables updates, existing lighting stays unchanged.
  • 1 = max speed, flat emittance colors stored in materials are used. All triangles that share the same material emit the same average color. Eventual changes in textures and non-uniform distribution of colors in texture are ignored.
  • 2 or more = higher precision, emissive textures are sampled, quality specifies number of samples per triangle. Triangles emit their average emissive colors and changes in textures are detected.

◆ materialEmittanceVideoQuality

unsigned rr::RRSolver::CalculateParameters::materialEmittanceVideoQuality

Only for Fireball solver: Like materialEmittanceStaticQuality, applied when there is video in emissive texture.

◆ materialEmittanceUsePointMaterials

bool rr::RRSolver::CalculateParameters::materialEmittanceUsePointMaterials

Only for Fireball solver: For materialEmittanceQuality=0, this parameter is ignored. For materialEmittanceQuality>0, two paths exist

  • false = Fast direct access to material's emissive texture. Recommended. At quality 16, it is roughly 5x slower than quality 0. If you haven't overloaded getPointMaterial(), both paths produce identical results, but this one is faster.
  • true = Slow access via customizable virtual function getPointMaterial(). At quality 16, it is roughly 100x slower than quality 0. Use it only if you need your overloaded getPointMaterial() to be used.

◆ materialTransmittanceStaticQuality

unsigned rr::RRSolver::CalculateParameters::materialTransmittanceStaticQuality

Only for Fireball and Architect solvers: Specifies what to do when transmittance texture changes.

  • 0 = no updates, existing lighting stays unchanged.
  • 1 = update only shadows.
  • 2 = update full GI.

◆ materialTransmittanceVideoQuality

unsigned rr::RRSolver::CalculateParameters::materialTransmittanceVideoQuality

Only for Fireball and Architect solvers: Like materialTransmittanceStaticQuality, applied when there is video in transmittance texture.

◆ environmentStaticQuality

unsigned rr::RRSolver::CalculateParameters::environmentStaticQuality

Only for Fireball solver: Specifies what to do when environment changes. Quality of lighting from environment, number of samples. 0 disables updates, existing lighting stays unchanged; so if you always pass 0, environment will not illuminate scene.

◆ environmentVideoQuality

unsigned rr::RRSolver::CalculateParameters::environmentVideoQuality

Only for Fireball solver: Like environmentStaticQuality, applied when there is video in environment texture.

◆ qualityIndirectDynamic

unsigned rr::RRSolver::CalculateParameters::qualityIndirectDynamic

Only for Fireball solver: Quality of indirect lighting when direct lighting changes. 1..20, default is 3. Higher quality makes calculate() take longer.

◆ qualityIndirectStatic

unsigned rr::RRSolver::CalculateParameters::qualityIndirectStatic

Only for Fireball solver: Target quality of indirect lighting when direct lighting doesn't change. 1..1000, default is 3. Higher quality doesn't make calculate() take longer, but indirect lighting improves in several consecutive calculate()s when direct lighting doesn't change.

◆ delayDDI

unsigned rr::RRSolver::CalculateParameters::delayDDI

Only for RRSolverGL: For how many frames indirect illumination can trail behind direct illumination. 0 = indirect synchronized with direct, highest quality. 3 = indirect slightly delayed behind direct, faster.

◆ secondsBetweenDDI

float rr::RRSolver::CalculateParameters::secondsBetweenDDI

Only for RRSolverGL: For how many seconds indirect illumination can stay unchanged. 0 = update in each frame, highest quality. 0.05 = update less frequently, faster.

◆ skipRRSolver

bool rr::RRSolver::CalculateParameters::skipRRSolver

Experimental, RRSolverGL::calculate() does not call RRSolver::calculate().