Bloom Effect Demo
このデモでは、Three.jsのBloomエフェクトを使用した光の表現方法を示しています。 Bloomエフェクトは、明るい部分から光が滲み出るような効果を作り出します。
Bloomエフェクトについて
Bloomエフェクトは、明るい光源や反射面から光が周囲に広がるように見える現象を再現するポストプロセス効果です。 これにより、夜景や光源のある3Dシーンがより現実的に見えるようになります。
フォグ(霧)効果について
フォグ効果は、遠くのオブジェクトが霧や靄によって徐々に見えなくなる現象を再現します。 これにより、シーンに奥行きや雰囲気を追加することができます。 このデモでは、Bloomエフェクトとフォグを組み合わせて、より幻想的な雰囲気を作り出しています。
Three.jsでの実装方法
Three.jsでは、EffectComposerとUnrealBloomPassを使用してBloomエフェクトを実装できます:
import { EffectComposer, Bloom } from '@react-three/postprocessing'
// Reactコンポーネント内で
<Canvas>
<Scene />
<EffectComposer>
<Bloom
intensity={1.0} // 強度
luminanceThreshold={0.9} // 輝度のしきい値
luminanceSmoothing={0.025} // 輝度のスムージング
/>
</EffectComposer>
</Canvas>
フォグの実装方法
Three.jsでは、2種類のフォグを実装できます:
// 線形フォグ - 距離に応じて線形に霧が濃くなる
<fog attach="fog" color="#000033" near={10} far={50} />
// 指数関数的フォグ - より自然な霧の表現
<fogExp2 attach="fog" color="#000033" density={0.05} />
このデモでは、Levaライブラリを使用してフォグのパラメータをリアルタイムで調整できるUIを実装しています。 画面左上のコントロールパネルを使って、フォグの種類や濃さを変更してみてください。
パラメータの調整
Bloomエフェクトの主なパラメータ:
- intensity: エフェクトの強度
- luminanceThreshold: このしきい値より明るいピクセルだけがブルーム効果の対象になります
- luminanceSmoothing: しきい値付近の遷移をスムーズにします
- radius: ブルームの広がり具合
フォグの主なパラメータ:
- 線形フォグ (Fog): 距離に応じて線形に霧が濃くなります
- near: この距離より近いオブジェクトには霧がかかりません
- far: この距離より遠いオブジェクトは完全に霧に覆われます
- 指数関数的フォグ (FogExp2): より自然な霧の表現が可能です
- density: 霧の濃さを決定します(値が大きいほど濃くなります)
- color: 霧の色(暗い青や灰色が一般的です)