简体   繁体   English

GL_TRIANGLES 有效,但 GL_QUADS 不显示任何内容

[英]GL_TRIANGLES works but GL_QUADS displays nothing

So I'm swapping from one program to another, and I can't figure out why but GL_QUADS will no longer display with the same code.所以我从一个程序切换到另一个程序,我不知道为什么 GL_QUADS 将不再显示相同的代码。 To try and figure out why old code was not working, I made this new, simple code and it STILL does not work.为了尝试找出旧代码不起作用的原因,我编写了这个新的简单代码,但它仍然不起作用。

The setup:设置:

vector <vec3f> squarepoints;
vec3f temper(-0.5f, 0.5f, 0.5f);
squarepoints.push_back(temper);
temper.x += 1.0f;
squarepoints.push_back(temper);
temper.y -= 1.0f;
squarepoints.push_back(temper);
temper.x -= 1.0f;
squarepoints.push_back(temper);
vector <unsigned int> squareindex;
squareindex.push_back(0);
squareindex.push_back(1);
squareindex.push_back(2);
//squareindex.push_back(0);
//squareindex.push_back(2);
squareindex.push_back(3);
GLuint VAOO;
GLuint IBOO;
GLuint VBOO;


glGenVertexArrays(1, &VAOO);
glBindVertexArray(VAOO);

glGenBuffers(1, &VBOO);
glBindBuffer(GL_ARRAY_BUFFER, VBOO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vec3f) * squarepoints.size(), &squarepoints[0], GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT,GL_FALSE, 0, 0);       


glGenBuffers(1, &IBOO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IBOO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned int) * squareindex.size(), &squareindex[0], GL_STATIC_DRAW);
glBindVertexArray(0);

The drawing:图纸:

glBindVertexArray(VAOO);
    glDrawElements(GL_QUADS, squareindex.size(), GL_UNSIGNED_INT, 0);
    glBindVertexArray(0);

This displays nothing.这不显示任何内容。 Now if I add in the two commented lines in the setup to make it 6 points and change it to GL_TRIANGLES in the drawing, it all displays perfectly.现在,如果我在设置中添加两条注释行使其为 6 点并将其更改为绘图中的 GL_TRIANGLES,则它都可以完美显示。 I am not sure where the fault is lying here, but I've been trying to fix my model loading and other features so long that I'm sure I'm just overlooking something super obvious at this point.我不确定这里的错误在哪里,但我一直在努力修复我的模型加载和其他功能,以至于我确信此时我只是忽略了一些非常明显的东西。

GL_QUADS 已从核心 OpenGL 3.1 及更高版本中删除

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM