ios - THREEJS - 影子神器 - IOS 设备
问题描述
我只有在 IOS 设备上有一个奇怪的影子工件,如下所示。阴影在桌面和安卓上工作正常。这不是偏差问题,也不是自阴影问题(尽管看起来确实如此),因为我知道法线是正确的并且没有双面。它仅发生在 IOS 设备上(测试过的 iPhone 6、8、10 和 ipad air 1、2)。有没有人遇到过类似的问题(除了偏见和自我阴影)?
编辑:为了让可能面临同样问题的其他人清楚。光线方向是从房子前面看房子后面(与截图位置相反,朝向后院),因此后面的屋顶(截图)应该完全在阴影中。但是,正如您在图片中看到的那样,地面上的阴影是正确的,但是屋顶上的阴影被切掉了,只有一些部分处于阴影中。
现场演示您可以在这里看到问题(问题仅出现在 IOS 设备上):https ://expivi.expivi.net/product/house-demo (我将在几天后应用解决方案,并在出现问题时在此处说明不再可见)
下面回答的解决方案来自 Threejs 阴影相机的默认值。假设大度量,将阴影相机的近平面设置为 0.5。
解决方案
Threejs似乎默认将shadowmap的camera的值设置为0.5。IOS 上的低浮点精度和我们使用的指标相结合会导致问题。设置 lightObject.shadow.camera.near = 0.01; 解决问题。
推荐阅读
- javascript - 如何将多个选择的选定选项放在首位
- java - CriteriaBuilder 与子关联的标准。休眠
- android - Android App 使用过多内存超过 500MB
- sql-server - 这两个查询之间有什么性能差异吗?
- angular - 如何从订阅访问错误响应的值
- ember.js - 如何在 ember.js 中访问 index.html 中的 ENV 变量
- windows - 在 Windows 10 上运行 VSCode 任务时无法加载 .bash_profile 或 .bashrc
- r - 读取管道和逗号分隔的文件:|column1|,|column2|
- c# - 是否可以模拟从测试类单元间接调用的类的方法?
- c# - NameValueCollection 到 ConfigurationSection