【问题标题】:Why is the shadow in the wrong place? (Three.js)为什么影子在错误的地方? (三.js)
【发布时间】:2012-06-21 00:15:37
【问题描述】:

我有一个绿色的飞机,上面有一个红色的立方体。灯光是定向灯。

为什么影子放错了地方? 代码:http://jsfiddle.net/pD8dn/


编辑:

如果我更改light.shadowBias,那么平面上的阴影是正确的,但立方体上的阴影不正确:

http://jsfiddle.net/pD8dn/4/

提前致谢,

【问题讨论】:

标签: javascript three.js


【解决方案1】:

这是阴影贴图最常见的人工制品之一,称为“Peter Panning”。

一种解决方法是为深度测试添加一些小偏差:

light.shadowBias = 0.001;

需要针对每个场景调整偏差的确切值(不幸的是,有时您无法消除所有地方的所有伪影,调整阴影贴图与其说是科学,不如说是艺术)。

这适用于您的示例:

http://jsfiddle.net/pD8dn/2/

【讨论】:

  • 是的,这就是我的意思,对于阴影贴图,您需要使用参数(分辨率、光锥大小和位置、偏差)并在不同类型的人工制品之间找到平衡。请注意,偏差可能对微小的变化非常敏感,请进行试验并查看效果。
  • 如果我的场景中还有更大和更小的对象,那么我找不到好的解决方案。这是 Three.js 中的错误吗?因为在其他3D库的demo中我没有发现这样的bug。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-16
  • 1970-01-01
相关资源
最近更新 更多