我正在开发一个OpenGL项目,我必须绘制一个彩色网格块以及与块中每个单元格接壤的(白色/黑色)线。
构成单元格的顶点位置与用于线条(边框)的顶点位置相同。
如果我使用相同的顶点来绘制单元格和线条,那么这些线条会被面部遮挡,还是反过来呢?
如何确保线条始终可见?
答案 0 :(得分:4)
这取决于depthfunc。如果后面的基元位于较早的基元之前,则使用GL_LESS以后的基元绘制早期的基元。使用GL_LEQUAL,如果它们不在后面的原语(即同一个帖子或之前),那么后面的原语就会被绘制。
因此,您可以使用GL_LEQUAL在单元格之后绘制线条,也可以使用GL_LESS在线条之后绘制单元格。
如果使用不同的着色器,可能需要将gl_Position声明为不变量,以确保计算出的坐标完全相等。