如果您只想绘制虚线,只需从GL_LINE_STRIP更改为GL_LINES即可。这样,开放的GL将连接顶点,从而在那里留下空间。它实际上是一个半/半比率的虚线 - glLineStipple(1,0101)的粗略等价物;
IE:顶点数组中
[0,0,1,1,2,2,3,3,4,4,5,5,6,6]
OpenGL将连接(0,0)到(1,1),但不会将(1,1)连接到(2,2)[而它将与GL_LINE_STRIP]连接。然后它将连接(3,3)到(4,4),但不连接(4,4)到(5,5)。最终连接将是(5,5)至(6,6)。
这是什么样子时,我做到了:
Dotted Lines on Android
行不虚50/50 /空的,因为在我的情况,它代表了一个游戏实体每个游戏框的位置 - 和游戏框架不一定都是相等的长度,因此不一致的线条:空间比例。
的代码看起来像这样把它画:
公共无效平局(GL10 GL) { gl.glDisable(GL10.GL_TEXTURE_2D);
gl.glColor4f(color[0], color[1], color[2], color[3]/fade);
//pointsBuffer holds the points on the line
gl.glVertexPointer(2, GL10.GL_FLOAT, 0, pointsBuffer);
gl.glDrawArrays(GL10.GL_LINES, 0, points.length/2);
gl.glEnable(GL10.GL_TEXTURE_2D);
}
另外一个设想创造出更有意点画图案将通过与索引阵列(glDrawElements)代替绘图跳过某些顶点。但是,我没有这方面的例子来向你展示。 :/
您是否尝试过正常的线条 - 它是否会让它们在地平线上消失,或者只有在使用它们时才有质感? – 2009-12-20 23:31:20
正常线条绘制正确,但我无法使用它们。我尝试将纹理应用到LINE_STRIP,但这似乎没有做任何事情。寻找我发现的建议,表明它不会工作,纹理三角形是要走的路。 如果纹理LINE_STRIPs可以工作,那会很好。 PS - 我正在使用egl 1.1。 – Piklor 2009-12-21 01:51:49