glClearDepth
opengl里面的深度緩存
在現(xiàn)實(shí)生活中,一個(gè)實(shí)心物體擋在另外一個(gè)實(shí)心物體的前面, 后面的那個(gè)物體有部分會(huì)被遮蓋掉
那么opengl里面如何模擬這個(gè)情況呢? 每個(gè)物體的每個(gè)像素都有一個(gè)深度緩存的值(在0到1之間,可以想象成是z軸的距離)
如果glDepthFunc啟用了GL_LESS(現(xiàn)實(shí)生活中的前景), 那么當(dāng)前個(gè)物體擋住后個(gè)物體時(shí), 由于前個(gè)物體深度值小(越靠近人的), 所以它就被畫了出來(lái), 后面的物體被擋住的像素就被忽略掉了。(當(dāng)然你如果啟用了GL_GREATER, 那么情況就反過(guò)來(lái)了)
這個(gè)時(shí)候再來(lái)說(shuō)glClearDepth, 它給深度緩沖指定了一個(gè)初始值,緩沖中的每個(gè)像素的深度值都是這個(gè), 比如1,這個(gè)時(shí)候你往里面畫一個(gè)物體, 由于物體的每個(gè)像素的深度值都小于等于1, 所以整個(gè)物體都被顯示了出來(lái)。 如果初始值指定為0, 物體的每個(gè)像素的深度值都大于等于0, 所以整個(gè)物體都不可見(jiàn)。 如果初始值指定為0.5, 那么物體就只有深度小于0.5的那部分才是可見(jiàn)的
轉(zhuǎn)載于:https://www.cnblogs.com/zsw-1993/archive/2012/12/12/4880583.html
總結(jié)
以上是生活随笔為你收集整理的glClearDepth的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: golang interface的使用和
- 下一篇: scrollHeight、clientH