FineKernelToolKit: FK::fk_Material クラス

FineKernelToolKit 4.3.0

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

マテリアル(質感)を管理するクラス [詳解]

`#include <FK/Material.h>`

FK::fk_Material の継承関係図
[凡例]
FK::fk_Material 連携図
[凡例]

## 公開メンバ関数

| fk_Material (void)
| コンストラクタ
virtual | ~fk_Material ()
| デストラクタ
| fk_Material (const fk_Material &arg)
| コピーコンストラクタ
fk_Material & | operator= (const fk_Material &arg)
| 代入演算子
void | init (void)
| 初期化関数
設定用関数
void | setAmbient (fk_Color c)
| 環境反射係数設定関数1
void | setAmbient (float r, float g, float b, float a=1.0f)
| 環境反射係数設定関数2
void | setAmbient (double r, double g, double b, double a=1.0)
| 環境反射係数設定関数3
void | setDiffuse (fk_Color c)
| 拡散反射係数設定関数1
void | setDiffuse (float r, float g, float b, float a=1.0f)
| 拡散反射係数設定関数2
void | setDiffuse (double r, double g, double b, double a=1.0)
| 拡散反射係数設定関数3
void | setSpecular (fk_Color c)
| 鏡面反射設定関数1
void | setSpecular (float r, float g, float b, float a=1.0f)
| 鏡面反射係数設定関数2
void | setSpecular (double r, double g, double b, double a=1.0)
| 鏡面反射係数設定関数3
void | setShininess (float s)
| 鏡面反射ハイライト設定関数1
void | setShininess (double s)
| 鏡面反射ハイライト設定関数2
void | setAmbDiff (fk_Color c)
| 環境反射・拡散反射同時設定関数1
void | setAmbDiff (float r, float g, float b, float a=1.0f)
| 環境反射・拡散反射同時設定関数2
void | setAmbDiff (double r, double g, double b, double a=1.0)
| 環境反射・拡散反射同時設定関数3
参照用関数
fk_Color * | getAmbient (void)
| 環境反射係数参照関数
fk_Color * | getDiffuse (void)
| 拡散反射係数参照関数
fk_Color * | getSpecular (void)
| 鏡面反射係数参照関数
float | getShininess (void)
| 鏡面反射ハイライト参照関数
void | setAlpha (float a)
| 透明度設定関数1
void | setAlpha (double a)
| 透明度設定関数2
基底クラス FK::fk_BaseObject に属する継承公開メンバ関数
| fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT)
| コンストラクタ
fk_Type | getObjectType (void) const
| タイプ取得関数

## 静的公開メンバ関数

static void | initDefault (void)
| デフォルトマテリアル初期化関数

## 詳解

マテリアル(質感)を管理するクラス

このクラスは、マテリアル(質感)を管理、制御する機能を提供します。 FKにおけるマテリアルは、以下の要素によって成り立っています。

- 環境反射係数 (Ambient)
- 拡散反射係数 (Diffuse)
- 鏡面反射係数 (Specular)
- 鏡面反射ハイライト (Shininess)

これらのうち、前者3つは fk_Color による RGBA 色表現であり、 後者1つは float 型によるスカラー値となっています。 各要素についての詳細はユーザーズマニュアルやCGの解説文献を参照して下さい。

マテリアルには、最初から定義されているグローバル変数があります。 これらのリストはユーザーズマニュアルの付録Aに記されています。 利用するには、 initDefault() 関数を呼ぶ必要があります。

インスタンス生成時の初期状態は以下のような値となります。

- 環境反射係数: (0.3, 0.3, 0.3, 1.0)
- 拡散反射係数: (0.0, 0.0, 0.0, 1.0)
- 鏡面反射係数: (1.0, 1.0, 1.0, 1.0)
- 鏡面反射ハイライト: 30.0

なお、透過色を設定した場合でも、 シーンで透過処理設定を有効としなければ、透過処理が行われません。 詳細は fk_Scene::setBlendStatus() の説明を参照して下さい。

参照
  fk_Color, fk_Palette, fk_Scene

## 構築子と解体子

## ◆ fk_Material() [1/2]

FK::fk_Material::fk_Material | ( | void |  | ) |

コンストラクタ

## ◆ ~fk_Material()

virtual FK::fk_Material::~fk_Material | ( |  | ) |

virtual

デストラクタ

## ◆ fk_Material() [2/2]

FK::fk_Material::fk_Material | ( | const fk_Material & | arg | ) |

コピーコンストラクタ

## 関数詳解

## ◆ operator=()

fk_Material & FK::fk_Material::operator= | ( | const fk_Material & | arg | ) |

代入演算子

## ◆ init()

void FK::fk_Material::init | ( | void |  | ) |

初期化関数

変数を初期状態に戻します。

## ◆ setAmbient() [1/3]

void FK::fk_Material::setAmbient | ( | fk_Color | c | ) |

環境反射係数設定関数1

環境反射係数を設定します。引数は fk_Color 型です。

引数

  [in] | c | 色

## ◆ setAmbient() [2/3]

void FK::fk_Material::setAmbient | ( | float | r,
|  | float | g,
|  | float | b,
|  | float | a = 1.0f )

環境反射係数設定関数2

環境反射係数を設定します。 引数は R, G, B の各色要素および透過要素 A を表す float 型の数値です。 設定できる値は 0 から 1 までで、 範囲外の数値については上下限に丸められます。

引数

  [in] | r | R要素値
  [in] | g | G要素値
  [in] | b | B要素値
  [in] | a | A(透過)要素

## ◆ setAmbient() [3/3]

void FK::fk_Material::setAmbient | ( | double | r,
|  | double | g,
|  | double | b,
|  | double | a = 1.0 )

環境反射係数設定関数3

環境反射係数を設定します。 引数は R, G, B の各色要素および透過要素 A を表す double 型の数値です。 設定できる値は 0 から 1 までで、 範囲外の数値については上下限に丸められます。

引数

  [in] | r | R要素値
  [in] | g | G要素値
  [in] | b | B要素値
  [in] | a | A(透過)要素

## ◆ setDiffuse() [1/3]

void FK::fk_Material::setDiffuse | ( | fk_Color | c | ) |

拡散反射係数設定関数1

拡散反射係数を設定します。引数は fk_Color 型です。

引数

  [in] | c | 色

## ◆ setDiffuse() [2/3]

void FK::fk_Material::setDiffuse | ( | float | r,
|  | float | g,
|  | float | b,
|  | float | a = 1.0f )

拡散反射係数設定関数2

拡散反射係数を設定します。 引数は R, G, B の各色要素および透過要素 A を表す float 型の数値です。 設定できる値は 0 から 1 までで、 範囲外の数値については上下限に丸められます。

引数

  [in] | r | R要素値
  [in] | g | G要素値
  [in] | b | B要素値
  [in] | a | A(透過)要素

## ◆ setDiffuse() [3/3]

void FK::fk_Material::setDiffuse | ( | double | r,
|  | double | g,
|  | double | b,
|  | double | a = 1.0 )

拡散反射係数設定関数3

拡散反射係数を設定します。 引数は R, G, B の各色要素および透過要素 A を表す double 型の数値です。 設定できる値は 0 から 1 までで、 範囲外の数値については上下限に丸められます。

引数

  [in] | r | R要素値
  [in] | g | G要素値
  [in] | b | B要素値
  [in] | a | A(透過)要素

## ◆ setSpecular() [1/3]

void FK::fk_Material::setSpecular | ( | fk_Color | c | ) |

鏡面反射設定関数1

鏡面反射係数を設定します。引数は fk_Color 型です。

引数

  [in] | c | 色

## ◆ setSpecular() [2/3]

void FK::fk_Material::setSpecular | ( | float | r,
|  | float | g,
|  | float | b,
|  | float | a = 1.0f )

鏡面反射係数設定関数2

鏡面反射係数を設定します。 引数は R, G, B の各色要素および透過要素 A を表す float 型の数値です。 設定できる値は 0 から 1 までで、 範囲外の数値については上下限に丸められます。

引数

  [in] | r | R要素値
  [in] | g | G要素値
  [in] | b | B要素値
  [in] | a | A(透過)要素

## ◆ setSpecular() [3/3]

void FK::fk_Material::setSpecular | ( | double | r,
|  | double | g,
|  | double | b,
|  | double | a = 1.0 )

鏡面反射係数設定関数3

鏡面反射係数を設定します。 引数は R, G, B の各色要素および透過要素 A を表す double 型の数値です。 設定できる値は 0 から 1 までで、 範囲外の数値については上下限に丸められます。

引数

  [in] | r | R要素値
  [in] | g | G要素値
  [in] | b | B要素値
  [in] | a | A(透過)要素

## ◆ setShininess() [1/2]

void FK::fk_Material::setShininess | ( | float | s | ) |

鏡面反射ハイライト設定関数1

鏡面反射ハイライトを設定します。引数は float 型です。

引数

  [in] | s | 鏡面反射ハイライト

## ◆ setShininess() [2/2]

void FK::fk_Material::setShininess | ( | double | s | ) |

鏡面反射ハイライト設定関数2

鏡面反射ハイライトを設定します。引数は double 型です。

引数

  [in] | s | 鏡面反射ハイライト

## ◆ setAmbDiff() [1/3]

void FK::fk_Material::setAmbDiff | ( | fk_Color | c | ) |

環境反射・拡散反射同時設定関数1

環境反射係数と拡散反射係数を同一の値で設定します。引数は fk_Color 型です。

引数

  [in] | c | 色

## ◆ setAmbDiff() [2/3]

void FK::fk_Material::setAmbDiff | ( | float | r,
|  | float | g,
|  | float | b,
|  | float | a = 1.0f )

環境反射・拡散反射同時設定関数2

環境反射係数と拡散反射係数を同一の値で設定します。 引数は R, G, B の各色要素および透過要素 A を表す float 型の数値です。 設定できる値は 0 から 1 までで、 範囲外の数値については上下限に丸められます。

引数

  [in] | r | R要素値
  [in] | g | G要素値
  [in] | b | B要素値
  [in] | a | A(透過)要素

## ◆ setAmbDiff() [3/3]

void FK::fk_Material::setAmbDiff | ( | double | r,
|  | double | g,
|  | double | b,
|  | double | a = 1.0 )

環境反射・拡散反射同時設定関数3

環境反射係数と拡散反射係数を同一の値で設定します。 引数は R, G, B の各色要素および透過要素 A を表す double 型の数値です。 設定できる値は 0 から 1 までで、 範囲外の数値については上下限に丸められます。

引数

  [in] | r | R要素値
  [in] | g | G要素値
  [in] | b | B要素値
  [in] | a | A(透過)要素

## ◆ getAmbient()

fk_Color * FK::fk_Material::getAmbient | ( | void |  | ) |

環境反射係数参照関数

返り値の型はポインタであることに注意して下さい。 ここで得られるアドレスは参照元マテリアルの実体であり、 実体の値を修正すると元マテリアルの色要素を修正することになります。

戻り値
  環境反射係数へのポインタ

参照
  setAmbient(), setAmbDiff()

## ◆ getDiffuse()

fk_Color * FK::fk_Material::getDiffuse | ( | void |  | ) |

拡散反射係数参照関数

返り値の型はポインタであることに注意して下さい。 ここで得られるアドレスは参照元マテリアルの実体であり、 実体の値を修正すると元マテリアルの色要素を修正することになります。

戻り値
  拡散反射係数へのポインタ

参照
  setDiffuse(), setAmbDiff()

## ◆ getSpecular()

fk_Color * FK::fk_Material::getSpecular | ( | void |  | ) |

鏡面反射係数参照関数

返り値の型はポインタであることに注意して下さい。 ここで得られるアドレスは参照元マテリアルの実体であり、 実体の値を修正すると元マテリアルの色要素を修正することになります。

戻り値
  鏡面反射係数へのポインタ

参照
  setSpecular()

## ◆ getShininess()

float FK::fk_Material::getShininess | ( | void |  | ) |

鏡面反射ハイライト参照関数

戻り値
  鏡面反射ハイライト

参照
  setShininess()

## ◆ setAlpha() [1/2]

void FK::fk_Material::setAlpha | ( | float | a | ) |

透明度設定関数1

環境反射係数、拡散反射係数、鏡面反射係数の透明度を一括して設定します。 引数は float 型です。 設定できる値は 0 から 1 までで、 範囲外の数値については上下限に丸められます。

覚え書き
  透過色を設定した場合でも、 シーンで透過処理設定を有効としなければ、透過処理が行われません。 詳細は fk_Scene::setBlendStatus() の説明を参照して下さい。

引数

  [in] | a | 透明度

参照
  fk_Scene::setBlendStatus()

## ◆ setAlpha() [2/2]

void FK::fk_Material::setAlpha | ( | double | a | ) |

透明度設定関数2

環境反射係数、拡散反射係数、鏡面反射係数の透明度を一括して設定します。 引数は double 型です。 設定できる値は 0 から 1 までで、 範囲外の数値については上下限に丸められます。

覚え書き
  透過色を設定した場合でも、 シーンで透過処理設定を有効としなければ、透過処理が行われません。 詳細は fk_Scene::setBlendStatus() の説明を参照して下さい。

引数

  [in] | a | 透明度

参照
  fk_Scene::setBlendStatus()

## ◆ initDefault()

void FK::fk_Material::initDefault | ( | void |  | ) |

static

デフォルトマテリアル初期化関数

この関数を呼ぶと、 ユーザーズマニュアルに掲載しているマテリアル変数の値を、 マニュアルに記載してある値に初期化します。 この関数を呼んだ後、該当マテリアル変数を 別のマテリアル値に設定することが可能です。

この関数は static 宣言されているため、 クラスのインスタンスを生成しなくても呼ぶことができます。