如何解决Three.JS:来自聚光灯的怪异阴影伪影,但仅限于Android
使用Three.js v0.113.2,我在一个带有两个聚光灯(一个在后面,一个在前面)和一个环境光的飞机上渲染杯子的场景。前部聚光灯投射阴影,杯子设置为投射阴影(但 not 不能接收阴影),飞机设置为可以接受阴影。我使用的阴影半径为20(iirc)。阴影mapSize为1024x1024。
在Android上,并且仅在Android(可在iPhone,Windows和Mac桌面上正确呈现)上,我从对象的照明中看到了这些奇怪的带状伪像。它在杯子上最明显,但也存在于窗格中。该工件具有明显可分辨的线条,与杯子对象的几何形状不匹配。
我尝试将camera.near
和camera.far
平面设置为紧密封装场景,并最终将这些值设置为50/200。没有效果。
我尝试将shadow.bias
的值设置为非常接近零的-.001。也没有效果。
不幸的是,这就是我可以从Three.js存储库和其他StackOverflow问题中找到的建议的范围。如果任何人都对这种工件看起来很熟悉,我很想找出解决方法。
编辑:我已将Spotlight上的castShadow
设置为false
,删除了环境光,删除了castShadow
和receiveShadow
所有网格,并且工件仍然显示在Android上(仅)。
解决方法
万一将来有人发现:
目前,仅影响Android的不幸伪像是由于将任何聚光灯的angle
值设置得太低引起的。在上面的场景中,有一个聚光灯,角度为0.091。将其提高到0.171时,奇怪的条纹消失了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。