我有一个缓冲区(用作SSBO和VBO),它包含复合数据类型交错浮点数和无符号整数:
struct VertexData{ 结构 { 浮动x; 漂浮y;…
缓冲区对象没有“实际的数据类型”。它们包含字节;而已。它是缓冲区的用法,它给出了它存储意义的字节,而这些字节具有特定用法所表示的含义。即便如此,当以特定方式使用缓冲区数据时,它只具有这种意义。
您的clear调用将所有缓冲区的字节设置为0.如果使用该缓冲区作为顶点数据的源,并且特定属性的类型是 GL_FLOAT ,那么为该属性读取的字节将被解释为存储IEEE-754 32位浮点值,其顺序与CPU提供的等效类型相同。 IEEE-754定义了0字节序列具有明确定义的值(即正零),因此这将具有明确定义的行为。
GL_FLOAT