Skip to content

File RenderConfigs.h

File List > render > RenderConfigs.h

Go to the documentation of this file

#pragma once

class RenderConfigs
{
public:

    enum class RenderPipeLine : char
    {
        Forward,  
        Deferred, 
        Custom0   
    };

    enum class SamplingType : char
    {
        Average,          
        IncrementAverage  
    };


    enum class OptFlwAlg : char
    {
        None,     
        Forward,  
        Backward  
    };

    enum class SSRAlg : char
    {
        None,                    
        RayMarching,             
        SDFRayMarching,          
        SDFResolvedRayMarching   
    };

    enum class AAAlg : char
    {
        None, 
        MSAA, 
        FXAA  
    };

    enum class AOAlg : char
    {
        None, 
        SSAO, 
        HBAO  
    };

    enum class ShadowAlg : char
    {
        None,          
        ShadowMapping, 
        SDFSoftShadow, 
        VSSM,          
        MSSM,          
        TMSSM,         
    };

    SamplingType r_sampling_average = SamplingType::Average;                    
    OptFlwAlg r_of_algorithm = OptFlwAlg::Backward;                             
    RenderPipeLine r_pipeline = RenderPipeLine::Deferred;                       
    AAAlg r_anti_alias = AAAlg::FXAA;                                           
    SSRAlg r_ssr_algorithm = SSRAlg::SDFResolvedRayMarching;                    
    AOAlg r_ao_algorithm = AOAlg::SSAO;                                         
    ShadowAlg r_shadow_algorithm = ShadowAlg::VSSM;                             

public:

    float r_gamma = 1.0f;      
    int r_ao_ksize = 16;       
    float r_ao_radius = 0.5;   
    int r_sample_pf = 128;     

public:

    bool RequiresFwdOF() const;

    bool RequiresBwdOF() const;

    bool RequiresSDF() const;

    bool RequiresShadow() const;

    bool RequiresMomentShadow() const;

    bool RequiresSSR() const;

    bool RequiresFXAA() const;

public:

    RenderConfigs() {};
};