我有一个运行我的iPhone应用程序的GLSL shader
程序(这是一个非常简单的着色器)。我试图声明一个vec2
的数组,但我遇到了很多麻烦。我的着色器被包装在第三方库中,所以很遗憾我无法获得有关语法中实际错误的任何真实信息。
声明vec2数组的代码(不工作)是:
highp vec2 steps[5] = vec2[](
vec2( 0.0015625, 0.00208333333333),
vec2( 0.003125, 0.00416666666667),
vec2( 0.00625, 0.00833333333333),
vec2( 0.0125, 0.0166666666667),
vec2( 0.025, 0.0333333333333)
);
有没有人知道如何在OpenGLES 2.0中创建vec2
数据类型数组?
答案 0 :(得分:2)
highp vec2 steps[5] = {
vec2( 0.0015625, 0.00208333333333),
vec2( 0.003125, 0.00416666666667),
vec2( 0.00625, 0.00833333333333),
vec2( 0.0125, 0.0166666666667),
vec2( 0.025, 0.0333333333333)
};
答案 1 :(得分:2)
我认为可以创建,但我不确定是否可以在声明时对其进行初始化。根据OpenGL ES规范,http://www.khronos.org/files/opengles_shading_language.pdf
没有在声明时初始化数组的机制 在着色器中。