2009-06-25 223 views
10

我想繪製一系列使用OpenGL的矩形,但是應該出現在矩形下方的一些矩形出現在其上方。OpenGL中的深度緩衝區

爲了讓我使用

glClearDepth(1.0f); 
glDepthFunc(GL_LESS); 
glEnable(GL_DEPTH_TEST); 

我在每次抽籤的開頭使用gluLookAt深度功能。這是一個問題的圖像。藍色矩形的位置y值高於綠色矩形。

alt text alt text

,你可以在上面的圖像上方的藍色的一些綠色長方形的出現在看。任何想法,爲什麼發生這種情況,我可以做些什麼來解決它?它可能與我繪製矩形的順序有關嗎?

回答

12

當你清除你的顏色緩衝區時你是否也清除了深度緩衝區?

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

確定的圖像是不正確的?其中一些綠色方塊實際上是
看起來比藍色方塊更高。

7

您是否在您使用的任何窗口系統中啓用了深度緩衝區?例如,使用glut可能需要:glutInitDisplayMode(GLUT_DEPTH | ....);

+0

我使用qt作爲我的窗口工具包。我不知道這樣的功能。你知道是否有一個我應該叫做類似於過剩的功能。 – DHamrick 2009-06-25 20:49:04