我假设这将是“未定义”的事情之一,但我似乎无法从谷歌找到具体答案。
假设在我的顶点着色器中我有:
layout(location = 0) in vec3 vPosition;
layout(location = 1) in vec3 vNormal;
layout(location = 2) in vec4 vColour;
但是使用 glEnableVertexAttribArray() 或 glVertexAttribPointer() 没有缓冲到位置 2。我可以期望值是什么特别的吗?
我假设 vec4 会沿着 {0,0,0,0}、{0,0,0,1} 或 {1,1,1,1} 的行,但在我的情况下是{0,0,1,1}。
当我之前使用 glBindAttribLocation() 来指定位置时,它在使用 3 种不同操作系统(ubuntu 12.04、windows 7 和 ubuntu 10.04)的 4 台不同机器上默认为 {1,1,1,1}。
假设跨机器的值是 {0,0,1,1} 是否安全?还是这仅仅是巧合?