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

时间:2015-01-29 03:50:06

标签: three.js rendering webgl depth

所以我尝试使用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的方法。感谢。

1 个答案:

答案 0 :(得分:0)

与MeshDepthMaterial和logarithmicDepthBuffer标志一起,我可以通过奇怪的相机设置获得相当漂亮的深度图。

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