I am trying to make a grid with OpenGL ES 2.0 for Android. What I am trying to understand is whether extra vertices use more memory even if they're not drawn on the screen. For example, I am drawing a line which is three times longer than visible area. I am using this Line class - https://stackoverflow.com/a/16223456/1621987。
mLine = new Line();
mLine.setVertices(0f, -10f, 0f, 0f, 10f, 0f);
...
GLES20.glDrawArrays(GLES20.GL_LINES, 0, vertexCount);
在性能和记忆方面做得有效吗?
答案 0 :(得分:1)
太长而无法看到它们的顶点但仍然部分可见的线条会被剪切到窗口,也就是说,如果它们没有被剪掉,它们的末端会被剪掉视线。完全在窗口外的线将被剔除,而不会被发送到光栅化器以进行绘制。但是,要确定OpenGL,必须将每一行发送到图形管道。 (当然,如果您的代码事先确定它们不会被看到,也可以省略这些线条以防止它们被绘制。)
因此,这不是使用更少的内存,而是消除不必要的工作。