2013-04-18 52 views
0

我想快速绘制一些固定颜色的线条,给出两点,我可以随意更改。在Open GL ES 2.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); 
    } 

回答

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

+1

我会尝试一下,我希望避免为一条线创建一个新程序,但它看起来像我必须的。 – user1681732