如何使用GL_LINE_STRIP绘制多条线,但不要在这些线之间绘制额外的线段,因为它会跳到下一个值?请参见图像。
现在红线是图表中线的实际值,但黄线是因为它完成了line1的值并继续到下一个值,但仍然在这些值之间画一条线。 我使用的代码如下:vector1包含所有线的值。
所以我的问题是如何解决这个问题?因此,它循环遍历向量,并仅绘制线的值,而不是在完成第一条线的绘制后跳转时绘制。
glGenVertexArrays(1,&Vector1_VAObject);
glGenBuffers(1,&Vector1_VBObject);
glBindVertexArray(Vector1_VAObject);
glBindBuffer(GL_ARRAY_BUFFER, Vector1_VBObject);
glBufferData(GL_ARRAY_BUFFER,vector1.size()*sizeof(GLfloat), &vector1[0] ,GL_STATIC_DRAW);
glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE, 3*sizeof(GLfloat),(GLvoid*)0);
//Clean
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER,0);
glBindVertexArray(0);
glUseProgram(lineShader->getProgram());
glBindVertexArray(Vector1_VAObject);
glDrawArrays(GL_LINE_STRIP,0,vector1.size());
glBindVertexArray(0);
所以我的问题是如何解决这个问题?因此,它循环遍历向量,并仅绘制线的值,而不是在完成第一条线的绘制后跳转时绘制。
GL_LINES
而使用GL_LINE_STRIP
呢?听起来你正在使用一种原始类型,这种类型并不适合你尝试渲染的内容,从而使事情变得比必要的复杂。 - Reto Koradi