簡體   English   中英

GL_TRIANGLES 有效,但 GL_QUADS 不顯示任何內容

[英]GL_TRIANGLES works but GL_QUADS displays nothing

所以我從一個程序切換到另一個程序,我不知道為什么 GL_QUADS 將不再顯示相同的代碼。 為了嘗試找出舊代碼不起作用的原因,我編寫了這個新的簡單代碼,但它仍然不起作用。

設置:

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);

圖紙:

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

這不顯示任何內容。 現在,如果我在設置中添加兩條注釋行使其為 6 點並將其更改為繪圖中的 GL_TRIANGLES,則它都可以完美顯示。 我不確定這里的錯誤在哪里,但我一直在努力修復我的模型加載和其他功能,以至於我確信此時我只是忽略了一些非常明顯的東西。

GL_QUADS 已從核心 OpenGL 3.1 及更高版本中刪除

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM