我的印象是float2x4类型会占用32个字节,但是当我声明下面的float2x4 varname [100]时,它会占用64 * 100个字节,而不是预期的32 * 100个字节。怎么会?也许我没有看到与float2x4填充相关的内容。
答案 0 :(得分:1)
float2x4要求4个float2s。由于每个“寄存器”是16字节宽(1 float4),因此它使用64字节的空间来存储4个float2。 4个float4中的每一个中的Z和W都是未使用的,并且充当填充。
相比之下,float4x2要求2个float4s,因此非常适合两个float4寄存器(32个字节)。