Javascript 对于three.js中的环境光遮挡,没有获得更好的结果

Javascript 对于three.js中的环境光遮挡,没有获得更好的结果,javascript,three.js,Javascript,Three.js,我已经看过这个例子了 看起来很好,块的边缘可见并高亮显示, 在我的密码上 边不是示例中的边。是否缺少任何东西取决于您的camera.far属性。您将其设置得太高(100000)。 只需将其设置为1000,您将获得更好的结果: Camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 10, 1000); 更改此选项将需要将摄影机移近场景,否则在启动时它将不可见,需要缩放 Camera.p

我已经看过这个例子了

看起来很好,块的边缘可见并高亮显示, 在我的密码上


边不是示例中的边。是否缺少任何东西取决于您的camera.far属性。您将其设置得太高(100000)。 只需将其设置为1000,您将获得更好的结果:

 Camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 10, 1000);
更改此选项将需要将摄影机移近场景,否则在启动时它将不可见,需要缩放

Camera.position.z = 200;

这些更改对我来说效果很好。

这取决于您的camera.far属性。您将其设置得太高(100000)。 只需将其设置为1000,您将获得更好的结果:

 Camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 10, 1000);
更改此选项将需要将摄影机移近场景,否则在启动时它将不可见,需要缩放

Camera.position.z = 200;

这些更改对我来说效果很好。

为了使用
SSAOShader
获得高质量的结果,您需要精确测量深度缓冲区中的深度。如前所述,对于透视相机,大多数深度缓冲精度接近于近平面。这意味着,如果对象位于平截头体的近端,您将获得最佳结果

因此,根据该论点,如果远平面太近,那么对象将太靠近平截头体的背面,质量将降低

另一方面,如果远平面太远(在您的情况下),对象将位于如此薄的深度范围内,由于深度缓冲区的精度,对象上的深度变化不够

因此,您必须将相机的
平面设置为能提供最佳效果的值


three.js r.75

为了使用
SSAOShader
获得高质量的结果,您需要精确测量深度缓冲区中的深度。如前所述,对于透视相机,大多数深度缓冲精度接近于近平面。这意味着,如果对象位于平截头体的近端,您将获得最佳结果

因此,根据该论点,如果远平面太近,那么对象将太靠近平截头体的背面,质量将降低

另一方面,如果远平面太远(在您的情况下),对象将位于如此薄的深度范围内,由于深度缓冲区的精度,对象上的深度变化不够

因此,您必须将相机的
平面设置为能提供最佳效果的值


three.js r.75

您的小提琴有控制台错误。如果您修复了它,它将对其他人有所帮助。:-)修正了,请看一下@WestLangleyUhm我是否需要使用轨道控制更新放大和缩小时近距离和远距离的值@WestLangleyUhm。。。为什么你接受了一个提供了修复而没有解释的答案?你的小提琴有控制台错误。如果您修复了它,它将对其他人有所帮助。:-)修正了,请看一下@WestLangleyUhm我是否需要使用轨道控制更新放大和缩小时近距离和远距离的值@WestLangleyUhm。。。为什么你接受了一个没有解释就提供了修复的答案?