Three.js でリアルな照明 (日光) を実現できますか? 質問する

Three.js でリアルな照明 (日光) を実現できますか? 質問する

Three.js を使用して小さな一人称視点のゲームを作成しようとしていますが、照明に問題があります。基本的には、太陽をシミュレートして、太陽が回転してすべてのものに光を当てるようにしたいのです。THREE.DirectionalLight現在使用していますが、1 方向のみが照らされるため、立方体の側面は黒/暗いままです。

すべてを照らすには複数のライトを使用する必要がありますか? または、地面や物体から光を反射させる方法はありますか?

ベストアンサー1

はい、これを実現するには、反射光を偽装するために複数のライトを使用する必要があります。実際の反射光の計算は組み込まれていません (計算上非常に複雑/高価です)。さまざまなオプションがあります。

常に太陽の反対の位置と方向にある可能性のある 2 番目の指向性ライト。

一定に保たれる半球状の光。半球状の照明は、空の色と地面の色と強度を取得し、照明に深みを加えます。

// sky color ground color intensity 
const hemiLight = new THREE.HemisphereLight( 0x0000ff, 0x00ff00, 0.6 ); 

実際の例はこちらをご覧くださいhttps://threejs.org/examples/#webgl_lights_hemisphere

さまざまなライトを自由に組み合わせて使用​​できますが、パフォーマンスとのトレードオフがあることに注意してください。

ハーフランバート シェーディングについても触れておく価値があります。これは、マテリアルで wrapAround プロパティを true に設定することで有効になります。これにより、黒へのフォールオフがより適切になり、照明があまりきつくなくなります。中間色が増え、黒が少なくなります。

おすすめ記事