diff options
author | Yuri Sizov <yuris@humnom.net> | 2023-12-08 15:23:27 +0100 |
---|---|---|
committer | Yuri Sizov <yuris@humnom.net> | 2023-12-08 15:23:27 +0100 |
commit | 44d544fc98d55cd71e53f384e11989d62f736ea0 (patch) | |
tree | 4dd57631ece5b10f1f3ff5152185e0ebeed6d6b3 /drivers/gles3/rasterizer_scene_gles3.h | |
parent | 62b264e6ac038f8bf8968ad2b2922e4db790124d (diff) | |
parent | 749f60ee365a6d661795637838e41122aff23058 (diff) | |
download | redot-engine-44d544fc98d55cd71e53f384e11989d62f736ea0.tar.gz |
Merge pull request #85120 from dsnopek/gl-lightmap
OpenGL: Implement rendering of lightmaps
Diffstat (limited to 'drivers/gles3/rasterizer_scene_gles3.h')
-rw-r--r-- | drivers/gles3/rasterizer_scene_gles3.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/gles3/rasterizer_scene_gles3.h b/drivers/gles3/rasterizer_scene_gles3.h index beb597ff99..a860793c21 100644 --- a/drivers/gles3/rasterizer_scene_gles3.h +++ b/drivers/gles3/rasterizer_scene_gles3.h @@ -170,6 +170,9 @@ private: float cos_spot_angle; float specular_amount; float shadow_opacity; + + float pad[3]; + uint32_t bake_mode; }; static_assert(sizeof(LightData) % 16 == 0, "LightData size must be a multiple of 16 bytes"); @@ -181,7 +184,7 @@ private: float size; uint32_t enabled; // For use by SkyShaders - float pad; + uint32_t bake_mode; float shadow_opacity; float specular; }; @@ -269,6 +272,10 @@ private: GeometryInstanceGLES3 *owner = nullptr; }; + struct GeometryInstanceLightmapSH { + Color sh[9]; + }; + class GeometryInstanceGLES3 : public RenderGeometryInstanceBase { public: //used during rendering @@ -296,6 +303,11 @@ private: LocalVector<uint32_t> omni_light_gl_cache; LocalVector<uint32_t> spot_light_gl_cache; + RID lightmap_instance; + Rect2 lightmap_uv_scale; + uint32_t lightmap_slice_index; + GeometryInstanceLightmapSH *lightmap_sh = nullptr; + // Used during setup. GeometryInstanceSurface *surface_caches = nullptr; SelfList<GeometryInstanceGLES3> dirty_list_element; |