|
@@ -8785,6 +8785,14 @@ RendererSceneRenderRD::RendererSceneRenderRD(RendererStorageRD *p_storage) {
|
|
|
default_giprobe_buffer = RD::get_singleton()->uniform_buffer_create(sizeof(GI::GIProbeData) * RenderBuffers::MAX_GIPROBES);
|
|
|
}
|
|
|
|
|
|
+ { //decals
|
|
|
+ cluster.max_decals = max_cluster_elements;
|
|
|
+ uint32_t decal_buffer_size = cluster.max_decals * sizeof(Cluster::DecalData);
|
|
|
+ cluster.decals = memnew_arr(Cluster::DecalData, cluster.max_decals);
|
|
|
+ cluster.decal_sort = memnew_arr(Cluster::InstanceSort<DecalInstance>, cluster.max_decals);
|
|
|
+ cluster.decal_buffer = RD::get_singleton()->storage_buffer_create(decal_buffer_size);
|
|
|
+ }
|
|
|
+
|
|
|
{ //reflections
|
|
|
|
|
|
cluster.max_reflections = max_cluster_elements;
|
|
@@ -8815,14 +8823,6 @@ RendererSceneRenderRD::RendererSceneRenderRD(RendererStorageRD *p_storage) {
|
|
|
cluster.directional_light_buffer = RD::get_singleton()->uniform_buffer_create(directional_light_buffer_size);
|
|
|
}
|
|
|
|
|
|
- { //decals
|
|
|
- cluster.max_decals = max_cluster_elements;
|
|
|
- uint32_t decal_buffer_size = cluster.max_decals * sizeof(Cluster::DecalData);
|
|
|
- cluster.decals = memnew_arr(Cluster::DecalData, cluster.max_decals);
|
|
|
- cluster.decal_sort = memnew_arr(Cluster::InstanceSort<DecalInstance>, cluster.max_decals);
|
|
|
- cluster.decal_buffer = RD::get_singleton()->storage_buffer_create(decal_buffer_size);
|
|
|
- }
|
|
|
-
|
|
|
if (!low_end) {
|
|
|
String defines = "\n#define MAX_DIRECTIONAL_LIGHT_DATA_STRUCTS " + itos(cluster.max_directional_lights) + "\n";
|
|
|
Vector<String> volumetric_fog_modes;
|