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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:07   11   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 加载出错 。最后绘制不出来

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP