I’m trying to modify uniform blocks:
c++
struct {
glm::mat4 projection;
glm::mat4 model;
glm::mat4 view;
glm::vec4 instancePos[3];
int layer;
} uboVS, uboOffscreenVS;
// This UBO stores the shadow matrices for all of the light sources
// The matrices are indexed using geometry shader instancing
// The instancePos is used to place the models using instanced draws
struct {
glm::mat4 mvp[LIGHT_COUNT];
glm::vec4 instancePos[3];
} uboShadowGS;
to: (just adding uint32_t totalInstances = 1)
struct {
glm::mat4 projection;
glm::mat4 model;
glm::mat4 view;
uint32_t totalInstances = 1;
glm::vec4 instancePos[3];
int layer;
} uboVS, uboOffscreenVS;
// This UBO stores the shadow matrices for all of the light sources
// The matrices are indexed using geometry shader instancing
// The instancePos is used to place the models using instanced draws
struct {
glm::mat4 mvp[LIGHT_COUNT];
uint32_t totalInstances = 1;
glm::vec4 instancePos[3];
} uboShadowGS;
And in the 2 shaders from:
layout (binding = 0) uniform UBO
{
mat4 mvp[LIGHT_COUNT];
vec4 instancePos[3];
} ubo;
layout (binding = 0) uniform UBO
{
mat4 projection;
mat4 model;
mat4 view;
vec4 instancePos[3];
} ubo;
to:
layout (binding = 0) uniform UBO
{
mat4 mvp[LIGHT_COUNT];
int totalInstances;
vec4 instancePos[3];
} ubo;
layout (binding = 0) uniform UBO
{
mat4 projection;
mat4 model;
mat4 view;
int totalInstances;
vec4 instancePos[3];
} ubo;
Not working, anything else to do?
Thanks.