我有一个结构类型,我想作为制服传递。用UBO可以做到吗?
struct LightParams {
// ...
};
uniform LightParams uLight;
显然,这并没有宣布它是一个统一的块,而是宣布一个普通的制服(我必须通过glGetUniformLocation("uLight.position")
分配个别成员?)
另一种选择是使用
uniform LightBlock {
LightParams uLight;
};
但是,统一块名称将是LightBlock
而不是uLight
,这有点令人困惑。
是否真的没有使用结构作为块的概念?