summaryrefslogtreecommitdiffstats
path: root/servers/rendering_server.h
diff options
context:
space:
mode:
authorreduz <reduzio@gmail.com>2021-01-22 20:50:24 -0300
committerreduz <reduzio@gmail.com>2021-01-24 19:29:07 -0300
commit6fe342478b7203ca36fdbaa34a31618c5bba42ce (patch)
tree1700367432cda90be825486e7697c1ffe1ec5ed3 /servers/rendering_server.h
parent6ddfc8e7187bd2b25b5caa61dee8fdca05af6298 (diff)
downloadredot-engine-6fe342478b7203ca36fdbaa34a31618c5bba42ce.tar.gz
Several GI related optimizations and fixes
-SDFGI direct light is done over many frames -SDFGI Changed settings for rays/frame -SDFGI Misc optimizations -SDFGI Bug fix on probe scroll -GIProbe was not working, got it to work again -GIProbe dynamic objects were not working, fixed -Added a half size GI option.
Diffstat (limited to 'servers/rendering_server.h')
-rw-r--r--servers/rendering_server.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/servers/rendering_server.h b/servers/rendering_server.h
index 1d83f1ae48..8693f733e2 100644
--- a/servers/rendering_server.h
+++ b/servers/rendering_server.h
@@ -986,6 +986,7 @@ public:
virtual void environment_set_sdfgi(RID p_env, bool p_enable, EnvironmentSDFGICascades p_cascades, float p_min_cell_size, EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, bool p_use_multibounce, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0;
enum EnvironmentSDFGIRayCount {
+ ENV_SDFGI_RAY_COUNT_4,
ENV_SDFGI_RAY_COUNT_8,
ENV_SDFGI_RAY_COUNT_16,
ENV_SDFGI_RAY_COUNT_32,
@@ -1009,6 +1010,17 @@ public:
virtual void environment_set_sdfgi_frames_to_converge(EnvironmentSDFGIFramesToConverge p_frames) = 0;
+ enum EnvironmentSDFGIFramesToUpdateLight {
+ ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME,
+ ENV_SDFGI_UPDATE_LIGHT_IN_2_FRAMES,
+ ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES,
+ ENV_SDFGI_UPDATE_LIGHT_IN_8_FRAMES,
+ ENV_SDFGI_UPDATE_LIGHT_IN_16_FRAMES,
+ ENV_SDFGI_UPDATE_LIGHT_MAX,
+ };
+
+ virtual void environment_set_sdfgi_frames_to_update_light(EnvironmentSDFGIFramesToUpdateLight p_update) = 0;
+
virtual void environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_aerial_perspective) = 0;
enum EnvVolumetricFogShadowFilter {
@@ -1430,6 +1442,8 @@ public:
virtual float get_frame_setup_time_cpu() const = 0;
+ virtual void gi_set_use_half_resolution(bool p_enable) = 0;
+
/* TESTING */
virtual RID get_test_cube() = 0;
@@ -1462,6 +1476,8 @@ public:
virtual bool is_low_end() const = 0;
+ virtual void set_print_gpu_profile(bool p_enable) = 0;
+
RenderingDevice *create_local_rendering_device() const;
bool is_render_loop_enabled() const;