首页 > 解决方案 > THREEJS - 影子神器 - IOS 设备

问题描述

我只有在 IOS 设备上有一个奇怪的影子工件,如下所示。阴影在桌面和安卓上工作正常。这不是偏差问题,也不是自阴影问题(尽管看起来确实如此),因为我知道法线是正确的并且没有双面。它仅发生在 IOS 设备上(测试过的 iPhone 6、8、10 和 ipad air 1、2)。有没有人遇到过类似的问题(除了偏见和自我阴影)?

编辑:为了让可能面临同样问题的其他人清楚。光线方向是从房子前面看房子后面(与截图位置相反,朝向后院),因此后面的屋顶(截图)应该完全在阴影中。但是,正如您在图片中看到的那样,地面上的阴影是正确的,但是屋顶上的阴影被切掉了,只有一些部分处于阴影中。

现场演示您可以在这里看到问题(问题仅出现在 IOS 设备上):https ://expivi.expivi.net/product/house-demo (我将在几天后应用解决方案,并在出现问题时在此处说明不再可见)

下面回答的解决方案来自 Threejs 阴影相机的默认值。假设大度量,将阴影相机的近平面设置为 0.5。

在此处输入图像描述

标签: iosthree.jswebgl

解决方案


Threejs似乎默认将shadowmap的camera的值设置为0.5。IOS 上的低浮点精度和我们使用的指标相结合会导致问题。设置 lightObject.shadow.camera.near = 0.01; 解决问题。


推荐阅读