ライトとシャドウマップを動的に作成、変更、および更新しようとしています (現時点では指向性のみ)。ライト、シャドウ、およびシャドウ カメラ ヘルパーは、ライトを移動したりシャドウ プロパティを変更したりすると正しく更新されますが、ライトの視点から見ると、明確な理由もなく原点 (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 つのストライプになります。また、スポット ライトで表示されます。シャドウ マップの解像度を変更すると、ストライプのサイズが相対的に変化しますが、中心から両方向に間隔を置いて常に 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