FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 全メンバ一覧
FK::fk_Fog クラス

シーン中の霧効果を制御するクラス [詳解]

#include <FK/Fog.h>

+ FK::fk_Fog の継承関係図
+ FK::fk_Fog 連携図

公開メンバ関数

 fk_Fog (void)
 コンストラクタ
 
virtual ~fk_Fog ()
 デストラクタ
 
void setFogMode (const fk_FogMode mode)
 減衰関数設定関数
 
void setFogDensity (const double d)
 指数式係数設定関数
 
void setFogLinearMap (const double S, const double E)
 線形式係数設定関数
 
void setFogColor (const fk_Color &col)
 霧色設定関数1
 
void setFogColor (float r, float g, float b, float a)
 霧色設定関数2
 
void setFogColor (double r, double g, double b, double a)
 霧色設定関数3
 
fk_FogMode getFogMode (void) const
 減衰関数取得関数
 
double getFogDensity (void) const
 指数式係数取得関数
 
double getFogLinearStart (void) const
 線形式係数取得関数1
 
double getFogLinearEnd (void) const
 線形式係数取得関数1
 
fk_Color getFogColor (void) const
 霧色取得関数
 
- 基底クラス FK::fk_BaseObject に属する継承公開メンバ関数
 fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT)
 コンストラクタ
 
fk_Type getObjectType (void) const
 タイプ取得関数
 

詳解

シーン中の霧効果を制御するクラス

このクラスは、シーン内の霧効果を制御する機能を提供します。 実際の利用時には、インスタンスは本クラスのものではなく 派生クラスの fk_Scene によるものを利用することになります。

参照
fk_Scene, fk_DisplayLink, fk_Color

構築子と解体子

◆ fk_Fog()

FK::fk_Fog::fk_Fog ( void  )

コンストラクタ

◆ ~fk_Fog()

virtual FK::fk_Fog::~fk_Fog ( )
virtual

デストラクタ

関数詳解

◆ setFogMode()

void FK::fk_Fog::setFogMode ( const fk_FogMode  mode)

減衰関数設定関数

霧効果の減衰関数を設定します。設定できる関数の種類は以下のとおりです。 各数式中の \( z \) はカメラからの距離を意味します。

  • fk_FogMode::LINEAR
    減衰関数として線形式を設定します。具体的には以下の数式を用います。

    \[ \frac{E-z}{E-S} \]

    式中の \( E, S \) は setFogLinearMap() で設定します。
  • fk_FogMode::EXP
    減衰関数として指数式を設定します。具体的には以下の数式を用います。

    \[ e^{-dz} \]

    式中の \( d \) は setFogDensity() で設定します。
  • fk_FogMode::EXP2
    減衰関数として指数(2乗)式を設定します。具体的には以下の数式を用います。

    \[ e^{-\left(dz\right)^2} \]

    式中の \( d \) は setFogDensity() で設定します。
  • fk_FogMode::OFF
    この値を設定した場合、霧効果を無効にします。

デフォルトでは fk_FogMode::OFF が設定されています。

引数
[in]mode減衰関数を表す値

◆ setFogDensity()

void FK::fk_Fog::setFogDensity ( const double  d)

指数式係数設定関数

減衰関数として指数式か指数(2乗)式を選択した場合の、 指数部の係数 d を設定します。 数式の詳細は setFogMode() を参照して下さい。

引数
[in]d指数部係数

◆ setFogLinearMap()

void FK::fk_Fog::setFogLinearMap ( const double  S,
const double  E 
)

線形式係数設定関数

減衰関数として線形式を選択した場合の、 係数 S, E を設定します。 意味的には、霧効果が始まる最低距離が S、 霧によって完全に物体が見えなくなる距離を E とすることになります。 数式の詳細は setFogMode() を参照して下さい。

引数
[in]S霧効果開始距離
[in]E霧効果完全距離

◆ setFogColor() [1/3]

void FK::fk_Fog::setFogColor ( const fk_Color col)

霧色設定関数1

霧の色を設定します。通常はシーンの背景色と同色とします。

引数
[in]col霧色
参照
fk_Scene::setBGColor()

◆ setFogColor() [2/3]

void FK::fk_Fog::setFogColor ( float  r,
float  g,
float  b,
float  a 
)

霧色設定関数2

霧の色を設定します。通常はシーンの背景色と同色とします。 色設定に関しての詳細は fk_Color を参照して下さい。

引数
[in]r霧色のR(赤)要素値
[in]g霧色のG(緑)要素値
[in]b霧色のB(青)要素値
[in]a霧色のA(透過)要素値
参照
fk_Scene::setBGColor()

◆ setFogColor() [3/3]

void FK::fk_Fog::setFogColor ( double  r,
double  g,
double  b,
double  a 
)

霧色設定関数3

霧の色を設定します。通常はシーンの背景色と同色とします。 色設定に関しての詳細は fk_Color を参照して下さい。

引数
[in]r霧色のR(赤)要素値
[in]g霧色のG(緑)要素値
[in]b霧色のB(青)要素値
[in]a霧色のA(透過)要素値
参照
fk_Scene::setBGColor()

◆ getFogMode()

fk_FogMode FK::fk_Fog::getFogMode ( void  ) const

減衰関数取得関数

霧効果の減衰関数として何が選択されているのかを取得します。 関数の種類および詳細は setFogMode() を参照して下さい。

戻り値
減衰関数を表す値

◆ getFogDensity()

double FK::fk_Fog::getFogDensity ( void  ) const

指数式係数取得関数

減衰関数として指数式か指数(2乗)式を選択した場合の、 指数部の係数 d を参照します。 数式の詳細は setFogMode() を参照して下さい。

戻り値
指数部係数

◆ getFogLinearStart()

double FK::fk_Fog::getFogLinearStart ( void  ) const

線形式係数取得関数1

減衰関数として線形式を選択した場合の、 係数 S を参照します。 数式の詳細は setFogMode() を参照して下さい。

戻り値
霧効果開始距離

◆ getFogLinearEnd()

double FK::fk_Fog::getFogLinearEnd ( void  ) const

線形式係数取得関数1

減衰関数として線形式を選択した場合の、 係数 E を参照します。 数式の詳細は setFogMode() を参照して下さい。

戻り値
霧効果完全距離

◆ getFogColor()

fk_Color FK::fk_Fog::getFogColor ( void  ) const

霧色取得関数

現在設定されている霧の色を参照します。

戻り値
霧色