小编Kah*_*hin的帖子

带有glDrawArrays的线图和来自向量的GL_LINE_STRIP

如何使用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);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何解决这个问题呢?因此它遍历向量并且仅绘制线的值,而不是在完成绘制第一行之后跳转的值.

c++ opengl vector gldrawarrays

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

gldrawarrays ×1

opengl ×1

vector ×1