Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 如果两个对象使用相同的顶点位置,如何确保绘制的对象遮挡另一个对象?_Opengl - Fatal编程技术网

Opengl 如果两个对象使用相同的顶点位置,如何确保绘制的对象遮挡另一个对象?

Opengl 如果两个对象使用相同的顶点位置,如何确保绘制的对象遮挡另一个对象?,opengl,Opengl,我正在做一个OpenGL项目,在那里我必须画一个彩色网格块以及块中每个单元格的边界线(白/黑) 构成单元的顶点位置与用于线(边框)的顶点位置相同 如果我使用相同的顶点来绘制单元和线,线会被面遮挡还是相反 如何确保这些行始终可见???这取决于depthfunc。如果后面的基本体位于前面的基本体之前,则使用GL_LESS,后面的基本体将绘制在前面的基本体上。使用GL_LEQUAL,如果后面的原语不在前面的原语后面(即相同的位置或之前),则会绘制后面的原语 因此,您可以使用GL_LEQUAL在单元格后

我正在做一个OpenGL项目,在那里我必须画一个彩色网格块以及块中每个单元格的边界线(白/黑)

构成单元的顶点位置与用于线(边框)的顶点位置相同

如果我使用相同的顶点来绘制单元和线,线会被面遮挡还是相反


如何确保这些行始终可见???

这取决于depthfunc。如果后面的基本体位于前面的基本体之前,则使用GL_LESS,后面的基本体将绘制在前面的基本体上。使用GL_LEQUAL,如果后面的原语不在前面的原语后面(即相同的位置或之前),则会绘制后面的原语

因此,您可以使用GL_LEQUAL在单元格后面绘制直线,也可以使用GL_LEQUAL在直线后面绘制单元格

如果使用不同的着色器,可能需要将gl_位置声明为不变量,以确保计算的坐标完全相等