0

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

截图:

http://i.imgur.com/n4AHvle.png

http://i.imgur.com/l0uaZHD.jpg

http://i.imgur.com/brKwCof.jpg

http://i.imgur.com/a6dqMGo.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

4

1 回答 1

1

问题是您的 Collada 模型。

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

难怪有文物。

将其替换为 THREE.CubeGeometry。

于 2013-01-27T22:58:31.797 回答