我只是试着这样做
C++
struct PointLight
{
glm::vec4 position;
glm::vec4 colour;
};
std::vector <PointLight> lights_array;
GLSL 320 ES:
layout (std140) struct PointLight
{
vec4 position;
vec4 colour;
};
layout (std140) buffer Lights
{
int count;
PointLight data [];
}
b_lights;
编译错误让我吃惊:
error C7600: no value specified for layout qualifier 'std140'
我找不到直接的答案,但我得到的印象是我无法为结构定义指定 std140。是这样吗?或者我该如何拼写?
如果不是,那么我如何保证我可以发送lights_array
到,glBufferData
以便它在着色器b_lights.data
数组中具有正确的布局?
换句话说,为什么std140
需要 thebuffer
而不是struct
?