0

给定两个可以随意更改的点,我想快速绘制一条固定颜色的线。

我有一些其他的对象,我有着色器和纹理,我可以在上面使用代码片段,但是它们的代码比我认为的简单线条所必需的要多得多。我对 Open GL ES 2.0 还很陌生,我不知道如何在我的屏幕上放置一条黄色的 3D 线而不制作一些持有者对象。

这是在我的渲染器的 onDrawFrame 方法中

    private void drawTestLine() {
       float[] lineEndPoints = new float[6];
       System.arraycopy(nearPoint, 0, lineEndPoints , 0, nearPoint.length);
       System.arraycopy(farPoint, 0, lineEndPoints , 3, farPoint.length);

//need help here
       GLES20.glDrawArrays(GLES20.GL_LINES, 0, 2);
    }
4

1 回答 1

0

顶点着色器:

attribute vec3 a_posL;
uniform mat4 u_mvpMatrix;
void main()
{
    gl_Position = u_mvpMatrix*vec4(a_posL,1.0);
}

片段着色器:

precision mediump float;
uniform vec4 u_lineColor;
void main()
{
    gl_FragColor = u_lineColor;
}

一旦有了这些着色器,只需使用 glVertexAttribPointer 和 glUniforms 传递位置、颜色和矩阵

于 2013-04-18T03:18:11.187 回答