2
我正在嘗試使用MeshDepthMaterial在three.js中實現一個簡單的GPU選取器。我已經成功使用下面的示例中提取顏色值: https://github.com/mrdoob/three.js/blob/master/examples/webgl_interactive_cubes_gpu.html在three.js中解壓縮RGBA深度值
而且通過移植unpackRGBAToDepth功能從這裏到JavaScript來重建深度:
但價值出來的一個在0.0到255.0之間的浮點數(我期望它在0.0到1.0之間或實際深度)。我的問題如下:我怎樣才能使用這個值,它可以被翻譯成實際的深度?如果是這樣,怎麼樣?
http://stackoverflow.com/questions/6652253/getting-the-true-z-value-from-the-深度緩衝和https://www.opengl.org/discussion_boards/showthread.php/171104-Convert-value-from-Z-buffer-to-Z-coordinate – gaitat
我的實現是非常接近的stackoverflow答案,但我使用對數深度緩衝區,因此它略有不同。我創建了一個例子:http://jsfiddle.net/1x4Lk8w6/1/在那裏我試圖得到實際的深度,但它最終總是1,如果有鼠標下的東西。 – Avocher
在更改相機的遠平面時檢查效果。 10000很大。 – gaitat