64 lines
1.8 KiB
C++
Executable file
64 lines
1.8 KiB
C++
Executable file
#pragma once
|
|
|
|
constexpr int brdf_resolution = 512;
|
|
|
|
constexpr bool default_enable_aa = true;
|
|
|
|
enum class ShadowFilter {
|
|
None,
|
|
PCF,
|
|
PCSS
|
|
};
|
|
|
|
enum class DisplayColorSpace {
|
|
Linear = 0,
|
|
SRGB = 1,
|
|
};
|
|
|
|
enum class TonemapOperator {
|
|
Linear = 0,
|
|
ExposureBased = 1,
|
|
AutoExposure = 2
|
|
};
|
|
|
|
#if defined(PLATFORM_TVOS) || defined(PLATFORM_IOS)
|
|
constexpr bool default_enable_ibl = false;
|
|
constexpr bool default_enable_normal_mapping = false;
|
|
constexpr bool default_enable_point_shadows = false;
|
|
constexpr ShadowFilter default_shadow_filter = ShadowFilter::PCF;
|
|
constexpr int default_shadow_resolution = 1024;
|
|
#endif
|
|
|
|
constexpr bool default_enable_ibl = true;
|
|
constexpr bool default_enable_normal_mapping = true;
|
|
constexpr bool default_enable_point_shadows = true;
|
|
constexpr ShadowFilter default_shadow_filter = ShadowFilter::PCSS;
|
|
constexpr int default_shadow_resolution = 2048;
|
|
|
|
struct RenderOptions {
|
|
DisplayColorSpace display_color_space = DisplayColorSpace::SRGB;
|
|
TonemapOperator tonemapping = TonemapOperator::Linear;
|
|
float exposure = 1.0f;
|
|
|
|
float min_luminance = -8.0f;
|
|
float max_luminance = 3.0f;
|
|
|
|
bool enable_depth_of_field = false;
|
|
float depth_of_field_strength = 3.0f;
|
|
|
|
bool dynamic_resolution = false;
|
|
double render_scale = 1.0f;
|
|
|
|
int shadow_resolution = default_shadow_resolution;
|
|
|
|
bool enable_aa = default_enable_aa;
|
|
bool enable_ibl = default_enable_ibl;
|
|
bool enable_normal_mapping = default_enable_normal_mapping;
|
|
bool enable_normal_shadowing = default_enable_normal_mapping;
|
|
bool enable_point_shadows = default_enable_point_shadows;
|
|
ShadowFilter shadow_filter = default_shadow_filter;
|
|
bool enable_extra_passes = true;
|
|
bool enable_frustum_culling = true;
|
|
};
|
|
|
|
inline RenderOptions render_options;
|