1
從下面的圖片可以看到,我有兩個並排的三角形(從正面看)。但是當我從右側看時,黃色三角形顯示出它好像位於綠色三角形前面,因爲它位於綠色三角形的後面(見右圖),爲什麼會發生這種情況?從左邊看它很好(見左視圖)。謝謝。Opengl奇怪的觀看
的FrontView:
右視圖(爲什麼是黃色三角形仍清晰可見?):
左視圖(從這裏看是好的):
這是我的渲染方法。即使我不使用glColor4f並以現代的方式進行着色,我仍然有同樣的結果。我也設置了glEnable(GL_DEPTH);和 glDepthFunc(GL_LESS);
void display(){
glClear(GL_COLOR_BUFFER_BIT);
control(0.2, 0.2, mi);
view = updateCam();
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glEnableClientState(GL_VERTEX_ARRAY);
model = glm::rotate(glm::mat4(1.0), 45, glm::vec3(0, 1, 0));
glColor4f(0, 1, 0, 1);
glDrawArrays(GL_TRIANGLES, 0, 3);
resetMatrix();
model = glm::translate(glm::mat4(1.0), glm::vec3(5, 0, 0));
model = glm::rotate(model, 45, glm::vec3(0, 1, 0));
glColor4f(1, 1, 0, 1);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableVertexAttribArray(0);
resetMatrix();
SDL_GL_SwapBuffers();
}
爲了解釋,這增加了一個「z索引」,其計算該元件是在前面/後面 – tobspr
噢..我忘了。謝謝。 – tambalolo