所以我尝试使用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的方法。感谢。
答案 0 :(得分:0)
与MeshDepthMaterial和logarithmicDepthBuffer标志一起,我可以通过奇怪的相机设置获得相当漂亮的深度图。
var renderer = new THREE.WebGLRenderer({logarithmicDepthBuffer: true });