每个光源中有三.js个阴影贴图条纹(现在简化,并带有jsfiddle!

  • 本文关键字:jsfiddle 光源 js 阴影 three.js
  • 更新时间 :
  • 英文 :


我正在尝试动态创建、修改和更新(目前仅限定向)灯光和阴影贴图。当我移动光源或更改阴影属性时,光源、阴影和阴影相机助手会正确更新,除了从光源的角度来看,原点 (0,0,0) 后面的所有内容都会无缘无故地被阴影。

截图:

https://i.stack.imgur.com/CPduM.png

https://i.stack.imgur.com/OaZqn.jpg

https://i.stack.imgur.com/R5Iz6.jpg

https://i.stack.imgur.com/MEpCM.jpg(新,带聚光灯)

您可以看到带有汽车和一块地面的场景,它们属于使用ColladaLoader导入的几何体。问题出在阴影映射上,汽车正确地投射阴影,但即使除了汽车遮挡光线之外别无他物,地面上也有条纹阴影。

如果我添加更多类似的灯,它们也有相同的 4 条条纹。它们也与聚光灯一起出现。如果我更改阴影贴图分辨率,条纹的大小会相对于彼此变化,但似乎总是有四个条纹,从中心到两个方向间隔开。

编辑:JSFiddle在这里:http://jsfiddle.net/cL3hX/1/场景中不应该有任何阴影,除非在阴影相机视锥体中引入了一些新的几何体。

关于小提琴的几个音符:

  • 我有 r55,但演示是 r54,因为 jsfiddle 显然还没有 r55。

  • 我只能用 Collada 文件重现这一点。所以这可能与模型有关。我在 Sketchup 8 中创建了一个简单的立方体,并尝试使用各种 collada 选项导出它。

  • 在 JSFiddle 中,我只能在启用"双面"设置的情况下导出文件来重现该错误。在我自己的应用程序代码中,我在启用或未启用该设置的情况下创建的模型上确实存在相同的错误,但在小提琴中,该错误似乎仅在导出"双面"时触发。无论如何,我确实需要以某种方式显示面部的背面,因为我正在开发的工具必须与Sketchup导出一起使用,并且很难在Sketchup中制作模型而不看到一堆正面/背面。

  • 非常简单的 Collada 文件作为 javascript 变量包含在 JSFiddle 中。这是同一文件的下载链接:https://dl.dropbox.com/u/14489569/shadowmapdemo.dae

问题是你的Collada模型。

您的"平面"实际上是在单个几何图形中背靠背的多个共面面。

难怪会有文物。

将其替换为三。立方体几何。

最新更新