OpenGL ES 2.0 - vec2数组

时间:2012-03-27 19:56:46

标签: iphone objective-c opengl-es glsl opengl-es-2.0

我有一个运行我的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数据类型数组?

2 个答案:

答案 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

  

没有在声明时初始化数组的机制   在着色器中。