我想为iPhone上的OpenGL ES应用程序编写一个简单的顶点着色器,但是我的数组构造函数给我带来了麻烦。如何在GLSL中编写const数组ES
attribute vec4 normal;
attribute vec4 position;
void main(void){
const vec4 vertices[3] = vec4[](vec4(0.25, -0.25, 0.5, 1.0),
vec4(-0.25, -0.25, 0.5, 1.0),
vec4(0.25, 0.25, 0.5, 1.0));
gl_Position = vertices[gl_VertexID];
}
当使用此代码着色器无法编译,给我的eror消息:
ERROR: 0:13: '(' : syntax error: Array size must appear after variable name
根据glsles文档,glsles只支持数组构造,而不是初始化。所以没有,不幸的是不行! – Oliver 2015-02-10 15:38:03
哦。这是令人惊讶和烦人的。 :(如果你只是添加'3'到你的构造函数中?'vertices [3] = vec4 [3](...)' – 2015-02-10 15:46:26
不是可悲的不是:( – Oliver 2015-02-10 16:02:36