glClearDepth

http://blog.csdn.net/meegomeego/article/details/8286609

opengl裏面的深度緩存 

在現實生活中,一個實心物體擋在另外一個實心物體的前面, 後面的那個物體有部分會被遮蓋掉,那麼opengl裏面如何模擬這個情況呢? 每個物體的每個像素都有一個深度緩存的值(在0到1之間,可以想象成是z軸的距離)
如果glDepthFunc啓用了GL_LESS(現實生活中的前景), 那麼當前個物體擋住後個物體時, 由於前個物體深度值小(越靠近人的), 所以它就被畫了出來, 後面的物體被擋住的像素就被忽略掉了。(當然你如果啓用了GL_GREATER, 那麼情況就反過來了)這個時候再來說glClearDepth, 它給深度緩衝指定了一個初始值,緩衝中的每個像素的深度值都是這個, 比如1,這個時候你往裏面畫一個物體, 由於物體的每個像素的深度值都小於等於1, 所以整個物體都被顯示了出來。 如果初始值指定爲0, 物體的每個像素的深度值都大於等於0, 所以整個物體都不可見。 如果初始值指定爲0.5, 那麼物體就只有深度小於0.5的那部分纔是可見的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章