2008-12-22 76 views
4

我渲染包含一些位圖文本的OpenGL場景。這是我的理解,我畫的東西的順序將決定哪些項目在頂部。OpenGL中的繪製順序

但是,我的位圖文本,即使我最後繪製它,也不在最上面!

例如,我繪製:

1)背景
2)按鈕
3)文本

所有在相同的Z深度。按鈕位於背景之上,但文字不可見。它改變了文本的z深度,我可以看到它,但我還有其他問題。

我正在使用Nehe教程中的位圖文本方法。

如何在不改變z深度的情況下使文本可見?

回答

8

你可以簡單地通過

glDisable (GL_DEPTH_TEST); // or something related.. 

禁用Z測試如果你這樣做你的文字圖元的Z將被忽略。基元的繪製順序與您調用gl函數的順序相同。

另一種方法是通過glPolygonOffset(不推薦)設置一些常數z偏移或將深度比較模式設置爲像GL_LESS_EQUAL(EQUAL是重要的)。這確保了以相同深度繪製的基元被渲染到彼此的頂部。

希望有所幫助。

+1

是的,關閉用於UI繪圖的z緩衝。 – 2008-12-22 05:56:31

+0

好的答案 - 我會建議所有相同的! :) – 2008-12-22 05:59:18

0

您也可以使用glDepthFunc(GL_ALWAYS)。