我画了一个三角形{(0,0), (1,0), (0,1)}
。现在我想画第二个。但由于某种原因,没有任何三角形。例如,三角形:{(1.5654, 1.2), (1.1, 1.4564), (1.5, 1.15)}
绘制正常,但不显示三角形{(1,1), (1,0), (0, 1)}
。听听我用来绘制的代码:
glBegin(GL_TRIANGLES);
invers_sh.setAttributeValue(b_colorLoc, colors[0]);
glVertex2d(1.5654, 1.2);
invers_sh.setAttributeValue(b_colorLoc, colors[1]);
glVertex2d(1.1, 1.4564);
invers_sh.setAttributeValue(b_colorLoc, colors[2]);
glVertex2d(1.5, 1.15);
glEnd();
对于第一个三角形,它是相同的代码(但坐标不同)。我试着联合两个图纸(在一个glBegin / glEnd中) - 相同的结果。我做错了什么?
答案 0 :(得分:1)
您需要根据正面设置以顺时针或逆时针顺序绘制所有顶点,您可以谷歌搜索更多详细信息。
答案 1 :(得分:0)
正如在另一个答案中所指出的,你需要以相同的顺序,顺时针或逆时针(默认为OpenGL)绘制所有三角形的顶点。 要更正排序,只需换出第一个和最后一个顶点。
您可以使用glCullFace,glFrontFace和glEnable / glDisable等GL_CULL_FACE
等OpenGL命令控制此行为(称为FaceCulling)。