我正在尝试动态创建,修改和更新(仅限于现在的方向)灯光和阴影贴图。当我移动光线或改变阴影属性时,光线,阴影和阴影相机帮助器会正确更新,除了从光线的角度来看,原点(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
答案 0 :(得分:1)
问题是你的Collada模型。
您的“平面”实际上是在单个几何体中背对背的多个共面面。
难怪有文物。
将其替换为THREE.CubeGeometry。