【发布时间】:2013-02-08 14:13:19
【问题描述】:
所以我使用 glBegin(GL_QUADS) 创建了一个四边形,然后绘制顶点,现在我想将纹理坐标数组传递给我的着色器,以便我可以将纹理应用到我的四边形。
所以我在正确使用语法时遇到了一些麻烦。
首先我制作了一个二维值数组
GLfloat coords[4][2];
coords[0][0] = 0;
coords[0][1] = 0;
coords[1][0] = 1;
coords[1][1] = 0;
coords[2][0] = 1;
coords[2][1] = 1;
coords[3][0] = 0;
coords[3][1] = 1;
然后我尝试将它放入我的着色器中,其中我有一个属性 vec2 texcoordIn
GLint texcoord = glGetAttribLocation(shader->programID(), "texcoordIn");
glEnableVertexAttribArray(texcoord);
glVertexAttribPointer(texcoord, ???, GL_FLOAT, ???, ???, coords);
所以我很困惑我应该为我标记为“???”的 glVertexAttribPointer 的参数输入什么而且我还想知道是否允许我将纹理坐标表示为二维数组,就像我最初所做的那样。
【问题讨论】:
标签: opengl graphics textures shader fragment-shader