1

WebGLでソーラーシステムを作成しようとしています。しかし、私は照明を設定することを知りません。太陽に光を当てて、360度光を当てたいです。私の惑星は影を落とし、受け取るべきです。それを達成するために、私の光は360度影を落とす必要があります。そのようなことをすることは可能ですか?もしそうなら、どのように?どのタイプのライトを使用する必要がありますか?

私の太陽にはmeshBasicMaterialがあり、私の惑星にはmeshShaderMaterialがあります。誰かが私にいくつかのサンプルコードを提供してくれてとても親切でしょうか?

ありがとうございました!

4

2 に答える 2

5

THREE.PointLight太陽のためにを追加する必要があります-それはすべての方向に光を投げかけます。

Three.jsのポイントライトはシャドウキャスティングをサポートしていないため、シャドウは扱いにくいです。理想的とは言えない選択肢がいくつかあります。

  • 各ワールド軸を指すように(つまり、立方体に)配置されたシャドウカメラで、6つのシャドウのみのスポットライトまたは指向性ライトを使用します。これはかなり高価になるでしょう。
  • ユーザーが現在見ている場所など、最も関心のある領域を指す1つ(または複数)のシャドウキャスティングライトを使用します。
  • 全方向性シャドウマッピングを自分で実装します(たとえば、デュアル放物面シャドウには6つではなく2つのシャドウマップのみが必要です)。
  • 影を省略します。空間には影を受け取ることができるサーフェスはそれほど多くないので、本当に必要ですか?

シャドウ受信オブジェクトのカスタムShaderMaterialでは、シェーダーに自分でシャドウを実装する必要があることに注意してください(またはthree.jsのシャドウイングコードチャンクを含める)。

于 2013-01-09T09:05:21.610 に答える
2

全方向性ライトを使用する必要があるように聞こえます。

于 2013-01-06T21:14:29.977 に答える