From 548524152ebb96a176b57266514003ad2e348f6e Mon Sep 17 00:00:00 2001 From: reduz Date: Sat, 26 Dec 2020 09:05:36 -0300 Subject: Rewrite culling to be more cache/thread friendly. -Uses a single array with all data -Massive performance improvement -Does not support threads yet, but code is now thread friendly --- servers/rendering/renderer_scene_render.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'servers/rendering/renderer_scene_render.h') diff --git a/servers/rendering/renderer_scene_render.h b/servers/rendering/renderer_scene_render.h index 19ab7a392b..d5e8f391cd 100644 --- a/servers/rendering/renderer_scene_render.h +++ b/servers/rendering/renderer_scene_render.h @@ -37,9 +37,14 @@ class RendererSceneRender { public: + enum { + MAX_DIRECTIONAL_LIGHTS = 8, + MAX_DIRECTIONAL_LIGHT_CASCADES = 4 + }; /* SHADOW ATLAS API */ - virtual RID shadow_atlas_create() = 0; + virtual RID + shadow_atlas_create() = 0; virtual void shadow_atlas_set_size(RID p_atlas, int p_size) = 0; virtual void shadow_atlas_set_quadrant_subdivision(RID p_atlas, int p_quadrant, int p_subdivision) = 0; virtual bool shadow_atlas_update_light(RID p_atlas, RID p_light_intance, float p_coverage, uint64_t p_light_version) = 0; @@ -56,7 +61,7 @@ public: virtual int sdfgi_get_pending_region_count(RID p_render_buffers) const = 0; virtual AABB sdfgi_get_pending_region_bounds(RID p_render_buffers, int p_region) const = 0; virtual uint32_t sdfgi_get_pending_region_cascade(RID p_render_buffers, int p_region) const = 0; - virtual void sdfgi_update_probes(RID p_render_buffers, RID p_environment, const PagedArray &p_directionals, const RID *p_positional_light_instances, uint32_t p_positional_light_count) = 0; + virtual void sdfgi_update_probes(RID p_render_buffers, RID p_environment, const Vector &p_directional_lights, const RID *p_positional_light_instances, uint32_t p_positional_light_count) = 0; /* SKY API */ -- cgit v1.2.3