【发布时间】:2018-01-20 04:01:00
【问题描述】:
struct Light {
glm::vec4 position;
glm::vec4 color;
glm::vec4 attenuation;
};
struct UBO {
// View and projection matrix
glm::mat4 view;
glm::mat4 proj;
// Fog
glm::vec4 skyColor;
float density;
float gradient;
// Clipping plane
glm::vec4 clippingPlane;
// Lights
Light lights[4];
};
Vulkan API:
UBO 结构每帧更新一次,然后通过统一缓冲区传递给顶点着色器。 渲染的图像颜色错误,因为光阵列没有正确传递。
顶点着色器绑定:
layout (binding = 1) uniform UBO {
// View and projection matrix
mat4 view;
mat4 proj;
// Fog
vec4 skyColor;
float density;
float gradient;
// Clipping plane
vec4 clippingPlane;
// Lights
Light lights[4];
} ubo;
我是否需要以某种方式对齐数据?
【问题讨论】: