无法在Android OpenGL ES 2.0中画点

关于qx

我在下面使用带有OpenGL ES 2.0的着色器代码。

    final String vertexShader =
                        "uniform mat4 u_MVPMatrix;      \n"       
                      + "attribute vec4 a_Position;     \n"     
                      + "void main()                    \n"
                      + "{                              \n"
                      + "   gl_Position = u_MVPMatrix   \n"
                      + "               * a_Position;   \n"
                      + "   gl_PointSize = 10.0;       \n"
                      + "}                              \n";

    final String fragmentShader =
                        "precision mediump float;       \n"                           
                      + "void main()                    \n"
                      + "{                              \n"
                      + "   gl_FragColor = vec4(1.0,    \n" 
                      + "   1.0, 1.0, 1.0);             \n"
                      + "}                              \n";    

@Override

public void onSurfaceChanged(GL10 glUnused, int width, int height)
{
    // Set the OpenGL viewport to the same size as the surface.
    GLES20.glViewport(0, 0, width, height);

    // Create a new perspective projection matrix. The height will stay the same
    // while the width will vary as per aspect ratio.
    final float ratio = (float) width / height;
    final float left = -ratio;
    final float right = ratio;
    final float bottom = -1.0f;
    final float top = 1.0f;
    final float near = 1.0f;
    final float far = 10.0f;

    Matrix.frustumM(mProjectionMatrix, 0, left, right, bottom, top, near, far);
}

onDrawFrame函数:

    @Override
    public void onDrawFrame(GL10 glUnused) 
    {
        GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);                    

        Matrix.setIdentityM(mModelMatrix, 0);
        //Push to the distance - note this will have no effect on a point size
        Matrix.translateM(mModelMatrix, 0, 0.0f, 0.0f, -5.0f);
        Matrix.multiplyMV(mMVPMatrix, 0, mViewMatrix, 0, mModelMatrix, 0);
        Matrix.multiplyMV(mMVPMatrix, 0, mProjectionMatrix, 0, mMVPMatrix, 0);
        GLES20.glUniformMatrix4fv(mMVPMatrixHandle, 1, false, mMVPMatrix, 0);

        //Send the vertex
        GLES20.glVertexAttribPointer(mPositionHandle, 3, GLES20.GL_FLOAT, false, 0, vertexBuf);
        GLES20.glEnableVertexAttribArray(mPositionHandle);

        //Draw the point
        GLES20.glDrawArrays(GLES20.GL_POINTS, 0, 1);        

    }   

这是我在android studio中使用的代码,只是行不通,只有背景。我已经设置了gl_PointSize,并且没有错误,似乎一切正常。我应该如何调试呢?

完整代码在这里链接

关于qx

好吧,我使用了来自链接的代码,“ multiplyMV”应为“ multiplyMM”,然后它可以工作。'multiplyMV'使结果成为4元素的列向量,因此其他3列为0。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android OpenGL ES 2-混合似乎总是可加的

来自分类Dev

如何在OpenGL ES 2中正确缩放

来自分类Dev

Android Opengl ES 2.0 FrameBuffer无法正常工作

来自分类Dev

Android OpenGL ES 2:如何在主活动中将OpenGL活动用作片段

来自分类Dev

Android上的OpenGL ES 2:如何使用VBO

来自分类Dev

如何在Android的OpenGL ES中渲染深度纹理

来自分类Dev

关于OpenGL ES 2的问题

来自分类Dev

无法在Android OpenGL ES 2.0中画点

来自分类Dev

Android openGL ES2rotateMM翻转角度

来自分类Dev

无法使RGB纹理显示在OpenGL ES2中

来自分类Dev

Android openGL ES 3.0着色器无法正常工作

来自分类Dev

Android Opengl ES2,颜色代替纹理中的位图

来自分类Dev

旋转了Android OpenGL ES 2纹理象限

来自分类Dev

多个OpenGL ES 2 Android渲染器

来自分类Dev

在opengl es 2中如何释放纹理(ios硬崩溃)

来自分类Dev

Android OpenGL ES 2-混合似乎总是可加的

来自分类Dev

如何在OpenGL ES 2中处理多个对象

来自分类Dev

OpenGL es 2中的顶点。适用于Android的Java

来自分类Dev

Android OpenGL ES 2:如何在主活动中将OpenGL活动用作片段

来自分类Dev

Android上的OpenGL ES 2:如何使用VBO

来自分类Dev

Android OpenGL ES无法绘图

来自分类Dev

使用OpenGL ES 2时Android上纹理中的黑色Alpha

来自分类Dev

Android上的OpenGL ES 2.0:无法加载纹理

来自分类Dev

Android OpenGL-ES无法通过触摸事件传递值

来自分类Dev

iOS SDL2 OpenGL ES无法绘制纹理

来自分类Dev

Android OpenGL ES2。0VBO无法渲染

来自分类Dev

Android openGL ES2rotateMM翻转角度

来自分类Dev

Android OpenGL ES中的灰度色深

来自分类Dev

OpenGL ES 代码可在 Android 中运行,但 glAttachShader 无法在 iOS 上运行

Related 相关文章

热门标签

归档