Lau*_*ves 8 glsl opengl-es-2.0
在GLSL-ES中,可以有阵列.例如,GLSL ES规范给出了以下数组的统一变量示例:
uniform vec4 lightPosition[4];
Run Code Online (Sandbox Code Playgroud)
是否可以将顶点属性作为数组?换句话说,根据规范,以下是合法的吗?
attribute vec4 foo[3]; // three vec4s per vertex
Run Code Online (Sandbox Code Playgroud)
GLSL ES规范中的任何地方都明确提到了答案(是或否)?(我找不到它,但我没有读过规范的每一行.)
此外,如果它是合法的,如何使用OpenGL ES 2.0 API初始化这样的属性?(假设glVertexAttribPointer会使用,顶点/ array-elements/vector-elements的布局是什么?)
Nic*_*las 10
所述GLSL ES 2.0规范该属性状态不能被声明为阵列.
在桌面GL中,您可以拥有属性数组.当为属性分配一个属性索引(glBindAttribLocation由着色器链接或自动链接)时,它将获得连续属性,从您使用时所请求的属性开始glBindAttribLocation.因此,如果foo给出位置5,foo[0]将是5,foo[1]将是6,并且foo[2]将是7.
如果有一些ES 2.0扩展允许属性数组,它可能会像这样工作.