当前位置: 代码迷 >> 综合 >> OpenGl 踩坑 问题 绘制图形显示不出来
  详细解决方案

OpenGl 踩坑 问题 绘制图形显示不出来

热度:37   发布时间:2024-02-07 10:35:59.0

今天在学习OpenGl 的时候 准备用ndk 做绘制开发。然后在c++ 中 写了一个shader 是这样的

const char *vertex = "attribute vec4 v_position;\n""\n""void main(){\n""    gl_Position = v_position;\n""}";
const char *fragment = "precision mediump float;\n""\n""void main(){\n""    gl_FragColor = vec4(1,0,0,1);\n""}";

然后在draw里进行绘制 

    glClearColor(1.0f, 0.0f, 0.0f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);glUseProgram(program);glEnableVertexAttribArray(vPosition);glVertexAttribPointer(vPosition, 2, GL_FLOAT, false, 8, vertexs);glEnableVertexAttribArray(fPosition);glVertexAttribPointer(fPosition, 2, GL_FLOAT, false, 8, fragments);glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

最后运行 死活出不来 图形 。。。 咋回事呢。查了好几天也没看出问题 。  后来让我发现了 其实是shader  的问题 

const char *fragment = "precision mediump float;\n""\n""void main(){\n""    gl_FragColor = vec4(1f,0f,0f,1f);\n""}";
我这里把着色器颜色写死了。红色 然后 可能是版本的问题 之前这个是没问题的。新版的 如果带f 你这个shader 加载是会出问题的。导致 shader 加载出错 。最后绘制不出来