我渲染包含一些位圖文本的OpenGL場景。這是我的理解,我畫的東西的順序將決定哪些項目在頂部。OpenGL中的繪製順序
但是,我的位圖文本,即使我最後繪製它,也不在最上面!
例如,我繪製:
1)背景
2)按鈕
3)文本
所有在相同的Z深度。按鈕位於背景之上,但文字不可見。它改變了文本的z深度,我可以看到它,但我還有其他問題。
我正在使用Nehe教程中的位圖文本方法。
如何在不改變z深度的情況下使文本可見?
我渲染包含一些位圖文本的OpenGL場景。這是我的理解,我畫的東西的順序將決定哪些項目在頂部。OpenGL中的繪製順序
但是,我的位圖文本,即使我最後繪製它,也不在最上面!
例如,我繪製:
1)背景
2)按鈕
3)文本
所有在相同的Z深度。按鈕位於背景之上,但文字不可見。它改變了文本的z深度,我可以看到它,但我還有其他問題。
我正在使用Nehe教程中的位圖文本方法。
如何在不改變z深度的情況下使文本可見?
你可以簡單地通過
glDisable (GL_DEPTH_TEST); // or something related..
禁用Z測試如果你這樣做你的文字圖元的Z將被忽略。基元的繪製順序與您調用gl函數的順序相同。
另一種方法是通過glPolygonOffset(不推薦)設置一些常數z偏移或將深度比較模式設置爲像GL_LESS_EQUAL(EQUAL是重要的)。這確保了以相同深度繪製的基元被渲染到彼此的頂部。
希望有所幫助。
您也可以使用glDepthFunc(GL_ALWAYS)。
是的,關閉用於UI繪圖的z緩衝。 – 2008-12-22 05:56:31
好的答案 - 我會建議所有相同的! :) – 2008-12-22 05:59:18