
在看放空的shader入门
说到这段内存对齐的时候我比较蒙蔽
那段代码分配情况 4+4+8 = 16我明白
但是上面那个是如何占用32的
f1_1 原本为4 因为后面是v2 所以补4 就是4+4 = 8
v2是8
f1_2按照规则总大小为最大成员的倍数 所以4补4为8
= =我咋都算不到32位呢
来个大佬解惑一下

在看放空的shader入门
说到这段内存对齐的时候我比较蒙蔽
那段代码分配情况 4+4+8 = 16我明白
但是上面那个是如何占用32的
f1_1 原本为4 因为后面是v2 所以补4 就是4+4 = 8
v2是8
f1_2按照规则总大小为最大成员的倍数 所以4补4为8
= =我咋都算不到32位呢
来个大佬解惑一下
参数的顺序问题

你截图上面有句话,说明UBO分配的内存必为16的倍数;

然后最后一句话有误,到f1_2一共占了20个字节,没有说补齐最大成员这一说,是v2这里需要保持前面是8字节的倍数(自身占8个),所以f1_1到v2才会浪费4个字节;
可是v2 8字节不就是前面f1_1 4字节的倍数么
你咋还看反了,是要求f1_1(4)是v2(8)的倍数,不足则补 
原来是这样 那我就理解了