Three.JS MeshDepthMaterial,深度图分布不均匀

Three.JS MeshDepthMaterial, depth map not uniformly distributed

所以我正在尝试使用 three.js

渲染场景的深度图

可在此处找到示例:http://threejs.org/docs/#Reference/Materials/MeshDepthMaterial

仔细设置场景后,深度图看起来不错,例如:

camera.position.z = 30;
camera.near = 0.1;
camera.far  = 50;
object.position.z = 0;

但是,如果相机以其他方式设置,例如:

camera.position.z = 600;
camera.near = 550;
camera.far  = 650;
object.position.z = 0;

在第二个例子中,深度分辨率全部被世界坐标系中-45到-50的深度范围所占用。这意味着对于 -50 < objects.position.z < -45,您仍然可以在深度图中看到灰度值。深度范围为 -45 到 50 的任何内容在深度图中都会显示为完全白色...

理想情况下,我希望看到深度值在 -50 到 50 范围内均匀分布。

有没有办法得到我想要的深度图? 有没有办法提高深度图的精度?

最后,我想将 three.js 场景的深度图保存为 .png 图像到本地磁盘以供分析。也欢迎不使用 three.js 的方法。谢谢

连同 MeshDepthMaterial 和 logarithmicDepthBuffer 标志,我可以通过奇怪的相机设置获得非常漂亮的深度图。

var renderer = new THREE.WebGLRenderer({logarithmicDepthBuffer: true });