Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.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
OpengGL无法绘制多个对象 我试图用C++编写一个简单的条形图,使用OpenGL。_C++_C_Opengl - Fatal编程技术网

OpengGL无法绘制多个对象 我试图用C++编写一个简单的条形图,使用OpenGL。

OpengGL无法绘制多个对象 我试图用C++编写一个简单的条形图,使用OpenGL。,c++,c,opengl,C++,C,Opengl,我正在努力画一个盒子。。。这看起来很简单,但我一定是误解了什么 因此,为了帮助我更好地了解发生了什么,我尝试画线循环 出于某种原因,我的直线循环一直跳回到坐标0,0,0。我不明白为什么会这样 这是我的绘图代码: GLfloat* points = new GLfloat[12]; points[0] = 0.5; // x points[1] = 0.5; // y points[2] = 0.0; // z points[3] = 0.6; // x points[4] = 0.5; poin

我正在努力画一个盒子。。。这看起来很简单,但我一定是误解了什么

因此,为了帮助我更好地了解发生了什么,我尝试画线循环

出于某种原因,我的直线循环一直跳回到坐标0,0,0。我不明白为什么会这样

这是我的绘图代码:

GLfloat* points = new GLfloat[12];
points[0] = 0.5; // x
points[1] = 0.5; // y
points[2] = 0.0; // z
points[3] = 0.6; // x
points[4] = 0.5;
points[5] = 0.0;
points[6] = 0.6;
points[7] = 0.6;
points[8] = 0.0;
points[9] = 0.5;
points[10] = 0.6;
points[11] = 0.0;
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, points);
glEnableVertexAttribArray(0);
glDrawArrays(GL_LINE_LOOP, 0, 12);
这适用于绘制GL_线对线,但不能正确绘制GL_三角扇、GL_三角带或GL_线环。在0,0,0处始终有一个坐标。这个代码有两套,另一套坐标不同。两种形状都有一条指向0,0,0的线

我想我完全误解了什么


可能应该提到我已经习惯了旧的OpenGL。

glVertexAttribPointer包含6个参数,您的代码段包含5个…?为什么在glDrawArrays调用中对OpenGL撒谎?你只有4个顶点,而不是12个。@genpfault啊,我想我误解了什么,这可能会解决它,谢谢。