サンプル
フォグ
ここではフォグに関する操作について解説します。
フォグは霧が立ちこめた様子を表現することができるエフェクトです。フォグを使うと、遠くにある物体をぼやかして表示することができるため、透視投影時のファークリップ面による切断面を分かりづらくすることができます。
フォグを設定するには、Fogクラスからインスタンスを生成、フォグのモードや色・濃度を設定した後、Graphics3Dオブジェクトにそのインスタンスを追加することで行います。
MascotCapsuleでは指数モード(EXPONENTIAL)と線形モード(LINER)の2種類のフォグが用意されています。
以下はサンプルコード内でフォグを設定している部分で、指数モードでフォグを設定しています。指数モードでフォグの濃度を設定するには、setDensity( float density )メソッドを使います。
// Sample11Canvas.java 53行
// フォグのインスタンスの作成
Fog fog = new Fog();
・・・
// Sample11Canvas.java 78行Fog fog = new Fog();
・・・
// フォグのモードの設定
fog.setMode( Fog.EXPONENTIAL );
// フォグの色の設定
fog.setColor( 0xffffff );
// フォグの濃度の設定
fog.setDensity( 0.03f );
・・・
// Sample11Canvas.java 144行fog.setMode( Fog.EXPONENTIAL );
// フォグの色の設定
fog.setColor( 0xffffff );
// フォグの濃度の設定
fog.setDensity( 0.03f );
・・・
// Graphics3Dオブジェクトにフォグを追加
g3.setFog( fog );
g3.setFog( fog );
なお、線形モードの場合、フォグの濃度はフォグの効果を有効にする区間(開始距離と終了距離)を設定することによって行います。線形モードでフォグの濃度を設定するメソッドはsetLiner( float near, float far )です。nearが開始距離、farが終了距離です。
フォグの有効(左)・無効(右)


