#pragma once constexpr int brdf_resolution = 512; enum class ShadowFilter { None, PCF, PCSS }; enum class DisplayColorSpace { Linear = 0, SRGB = 1, }; enum class TonemapOperator { Linear = 0, ExposureBased = 1, AutoExposure = 2 }; 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 = 2048; bool enable_aa = true; bool enable_ibl = true; bool enable_normal_mapping = true; bool enable_normal_shadowing = false; bool enable_point_shadows = true; ShadowFilter shadow_filter = ShadowFilter::PCSS; bool enable_extra_passes = true; bool enable_frustum_culling = true; }; inline RenderOptions render_options;