Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
prism/engine/renderer/include/render_options.hpp

58 lines
1.6 KiB
C++
Raw Normal View History

2020-09-20 23:31:03 -04:00
#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
};
2020-09-20 23:31:03 -04:00
#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;
#else
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;
#endif
struct RenderOptions {
DisplayColorSpace display_color_space = DisplayColorSpace::SRGB;
TonemapOperator tonemapping = TonemapOperator::Linear;
float exposure = 1.0f;
2020-09-20 23:31:03 -04:00
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;