一般我們在shader內取得depth的方式是 projected position.z / projected position.w。但是這樣的depth並不是線性分佈的,離鏡頭比較近的東西,Z值變化很大,會吃掉Z值90%的值。也就是說距離鏡頭前10%的部分,如果depth的range是0~1之間的話,就會在0~0.9值在變化,剩下的離鏡頭90%的部分,就只會在0.9~1之間變化。
所以要改成projected position.z / camera far plane dist。
目前原理都不曉得為什麼,所以之後再補上。
沒有留言:
張貼留言