如何在IOS中使用带着色器语言的Opengl ES显示图像。

时间:2014-09-26 12:05:16

标签: ios opengl-es

我在IOS中使用带有Shader的Opengl ES实现了显示图像的代码。

以下步骤:

1.Created Context。

2.Created着色并编译。

3.Linked shader

4.将图像加载为纹理。

将Opengl ES与着色器的纹理链接。

GLuint  _fishTexture = [self setupTexture:@"test-1bit-alpha.png"];
    GLuint  _texCoordSlot = glGetAttribLocation(program, "TexCoordIn");
    glEnableVertexAttribArray(_texCoordSlot);
    GLuint    _textureUniform = glGetUniformLocation(program, "Texture");

    glActiveTexture(GL_TEXTURE0); // unneccc in practice
    glBindTexture(GL_TEXTURE_2D, _fishTexture);
    glUniform1i(_textureUniform, 0); // unnecc in practice
    const char *aPositionCString = [@"a_position" cStringUsingEncoding:NSUTF8StringEncoding];
    GLuint aPosition = glGetAttribLocation(program, aPositionCString);
     glVertexAttribPointer(_texCoordSlot, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (GLvoid*) (sizeof(float) * 7));

我的顶点着色器:

attribute vec4 a_position; 
attribute vec2 TexCoordIn; // New
varying vec2 TexCoordOut; // New

void main(void) {
   // DestinationColor = SourceColor;
    gl_Position = a_position;
    TexCoordOut = TexCoordIn; // New
}

我的片段着色器:

varying lowp vec2 TexCoordOut; // New
uniform sampler2D Texture; // New

void main(void) {
    gl_FragColor = texture2D(Texture, TexCoordOut); // New
}

我已成功构建,但我没有获得显示图像。

如何使用带着色器的opengl来显示图像。?

您是否使用带着色器的Opengl ES为显示图像提供了任何示例代码。?

0 个答案:

没有答案