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 つのストライプになります。また、スポット ライトで表示されます。シャドウ マップの解像度を変更すると、ストライプのサイズが相対的に変化しますが、中心から両方向に間隔を置いて常に 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 に答える