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 });
所以我正在尝试使用 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 });