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

テクスチャ用基底クラス [詳解]

#include <FK/Texture.h>

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

公開メンバ関数

void setImage (fk_Image *image)
 画像データ設定関数
 
fk_ImagegetImage (void)
 画像データ取得関数
 
bool readBMP (std::string fileName)
 BMP ファイル入力関数
 
bool readBMPData (fk_ImType *buf)
 BMP バッファ入力関数
 
bool readPNG (std::string fileName)
 PNG ファイル入力関数
 
bool readPNGData (fk_ImType *buf)
 PNG バッファ入力関数
 
bool readJPG (std::string fileName)
 JPEG ファイル入力関数
 
const fk_DimensiongetImageSize (void)
 画像サイズ取得関数
 
const fk_DimensiongetBufferSize (void)
 画像バッファサイズ取得関数
 
void setTextureMode (fk_TexMode mode)
 テクスチャモード設定関数
 
fk_TexMode getTextureMode (void)
 テクスチャモード取得関数
 
void setTexRendMode (fk_TexRendMode mode)
 テクスチャ描画品質設定関数
 
fk_TexRendMode getTexRendMode (void)
 テクスチャ描画品質取得関数
 
void setTexWrapMode (fk_TexWrapMode mode)
 テクスチャ外周部モード設定関数
 
fk_TexWrapMode getTexWrapMode (void)
 テクスチャ外周部モード取得関数
 
void fillColor (const fk_Color &color)
 一様色初期化関数1
 
void fillColor (int r, int g, int b, int a=0)
 一様色初期化関数2
 
const fk_ImType * getImageBuf (void)
 画像データ配列先頭アドレス取得関数

 
void setFrameBuffer (fk_FrameBuffer *buffer)
 フレームバッファー設定関数
 
fk_FrameBuffergetFrameBuffer (void)
 フレームバッファー取得関数
 
void initFrameBuffer (void)
 フレームバッファー情報初期化関数
 
- 基底クラス FK::fk_Shape に属する継承公開メンバ関数
 fk_Shape (fk_Type=fk_Type::SHAPE)
 コンストラクタ
 
virtual ~fk_Shape ()
 デストラクタ
 
fk_RealShapeType getRealShapeType (void)
 形状データ構造取得関数
 
void setShaderAttribute (std::string name, int dim, std::vector< int > *array, bool self=false)
 シェーダー内 attribute 変数設定関数1
 
void setShaderAttribute (std::string name, int dim, std::vector< float > *array, bool self=false)
 シェーダー内 attribute 変数設定関数2
 
void setShaderAttribute (std::string name, int dim, std::vector< fk_Vector > *array)
 シェーダー内 attribute 変数設定関数3
 
void setShaderAttribute (std::string name, int dim, std::vector< fk_TexCoord > *array)
 シェーダー内 attribute 変数設定関数4
 
void setShaderAttribute (std::string name, int dim, std::vector< fk_HVector > *array)
 シェーダー内 attribute 変数設定関数5
 
void modifyAttribute (std::string name)
 attribute 変数更新関数
 
- 基底クラス FK::fk_Attribute に属する継承公開メンバ関数
 fk_Attribute (void)
 コンストラクタ
 
virtual ~fk_Attribute ()
 デストラクタ
 
bool setAttrII (const int key, const int value)
 キーが int 型、値が int 型である属性設定関数
 
bool setAttrID (const int key, const double value)
 キーが int 型、値が double 型である属性設定関数
 
bool setAttrIS (const int key, const std::string value)
 キーが int 型、値が std::string 型である属性設定関数
 
bool setAttrSI (const std::string key, const int value)
 キーが std::string 型、値が int 型である属性設定関数
 
bool setAttrSD (const std::string key, const double value)
 キーが std::string 型、値が double 型である属性設定関数
 
bool setAttrSS (const std::string key, const std::string value)
 キーが std::string 型、値が std::string 型である属性設定関数
 
int getAttrII (const int key) const
 キーが int 型、値が int 型である属性参照関数
 
double getAttrID (const int key) const
 キーが int 型、値が double 型である属性参照関数
 
std::string getAttrIS (const int key) const
 キーが int 型、値が std::string 型である属性参照関数
 
int getAttrSI (const std::string key) const
 キーが std::string 型、値が int 型である属性参照関数
 
double getAttrSD (const std::string key) const
 キーが std::string 型、値が double 型である属性参照関数
 
std::string getAttrSS (const std::string key) const
 キーが std::string 型、値が std::string 型である属性参照関数
 
bool existAttrII (const int key) const
 キーが int 型、値が int 型である属性存在参照関数
 
bool existAttrID (const int key) const
 キーが int 型、値が double 型である属性存在参照関数
 
bool existAttrIS (const int key) const
 キーが int 型、値が std::string 型である属性存在参照関数
 
bool existAttrSI (const std::string key) const
 キーが std::string 型、値が int 型である属性存在参照関数
 
bool existAttrSD (const std::string key) const
 キーが std::string 型、値が double 型である属性存在参照関数
 
bool existAttrSS (const std::string key) const
 キーが std::string 型、値が std::string 型である属性存在参照関数
 
bool deleteAttrII (const int key)
 キーが int 型、値が int 型である属性消去関数
 
bool deleteAttrID (const int key)
 キーが int 型、値が double 型である属性消去関数
 
bool deleteAttrIS (const int key)
 キーが int 型、値が std::string 型である属性消去関数
 
bool deleteAttrSI (const std::string key)
 キーが std::string 型、値が int 型である属性消去関数
 
bool deleteAttrSD (const std::string key)
 キーが std::string 型、値が double 型である属性消去関数
 
bool deleteAttrSS (const std::string key)
 キーが std::string 型、値が std::string 型である属性消去関数
 
- 基底クラス FK::fk_BaseObject に属する継承公開メンバ関数
 fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT)
 コンストラクタ
 
fk_Type getObjectType (void) const
 タイプ取得関数
 

詳解

テクスチャ用基底クラス

このクラスは、テクスチャを表すクラスの基底クラスです。 様々なテクスチャクラスの共通機能を提供します。 クラス自体の主な機能はテクスチャ画像の生成や入力です。

参照
fk_Image, fk_RectTexture, fk_TriTexture, fk_MeshTexture, fk_IFSTexture, fk_Dimension, fk_FrameBuffer, fk_Renderer

関数詳解

◆ setImage()

void FK::fk_Texture::setImage ( fk_Image image)

画像データ設定関数

画像データを設定します。

覚え書き
fk_Texture (およびその派生クラス) では、 最初から自前の画像データ領域を保持しています。 この関数はあくまで外部で用意した画像データを テクスチャとして利用したい場合に使用するためのものであり、 必ず設定しなければならないというわけではありません。
引数
[in]image画像データ

◆ getImage()

fk_Image * FK::fk_Texture::getImage ( void  )

画像データ取得関数

現在設定されている画像データを取得します。

戻り値
画像データ

◆ readBMP()

bool FK::fk_Texture::readBMP ( std::string  fileName)

BMP ファイル入力関数

BMP (Windows Bitmap) 形式のファイルからデータを読み込み、 テクスチャ画像として設定します。

引数
[in]fileNameファイル名
戻り値
入力に成功すれば true、失敗すれば false を返します。

◆ readBMPData()

bool FK::fk_Texture::readBMPData ( fk_ImType *  buf)

BMP バッファ入力関数

BMP (Windows Bitmap) 形式のバッファからデータを読み込み、 テクスチャ画像として設定します。 fk_ImType 型は、OpenGL をサポートしている環境においては GLubyte、 サポートしていない環境では unsigned char 型として定義されています。

引数
[in]bufデータバッファ
戻り値
入力に成功すれば true、失敗すれば false を返します。

◆ readPNG()

bool FK::fk_Texture::readPNG ( std::string  fileName)

PNG ファイル入力関数

PNG 形式のファイルからデータを読み込み、 テクスチャ画像として設定します。

引数
[in]fileNameファイル名
戻り値
入力に成功すれば true、失敗すれば false を返します。

◆ readPNGData()

bool FK::fk_Texture::readPNGData ( fk_ImType *  buf)

PNG バッファ入力関数

PNG 形式のバッファからデータを読み込み、 テクスチャ画像として設定します。 fk_ImType 型は、OpenGL をサポートしている環境においては GLubyte、 サポートしていない環境では unsigned char 型として定義されています。

引数
[in]bufデータバッファ
戻り値
入力に成功すれば true、失敗すれば false を返します。

◆ readJPG()

bool FK::fk_Texture::readJPG ( std::string  fileName)

JPEG ファイル入力関数

JPEG 形式のファイルからデータを読み込み、 テクスチャ画像として設定します。

引数
[in]fileNameファイル名
戻り値
入力に成功すれば true、失敗すれば false を返します。

◆ getImageSize()

const fk_Dimension * FK::fk_Texture::getImageSize ( void  )

画像サイズ取得関数

画像サイズを fk_Dimension 型で取得します。

戻り値
画像サイズ
参照
getBufferSize()

◆ getBufferSize()

const fk_Dimension * FK::fk_Texture::getBufferSize ( void  )

画像バッファサイズ取得関数

実際に画像用データバッファとして確保されているサイズを、 fk_Dimension 型で返します。

覚え書き
実画像サイズとデータバッファサイズの違いについては、 fk_Image::getBufferSize() の覚え書きを参照して下さい。
戻り値
データサイズ
参照
getImageSize(), fk_Image::getBufferSize()

◆ setTextureMode()

void FK::fk_Texture::setTextureMode ( fk_TexMode  mode)

テクスチャモード設定関数

テクスチャの描画時における描画色処理モードを設定します。 これは、ポリゴンに設定されているマテリアルによる発色と、 テクスチャ画像の色をどのように混成するかを制御するものです。 それぞれのモードの概要と厳密な計算式を以下に記載します。 なお、数式中の \( C_f \) はポリゴン色、 \( C_\alpha \) ポリゴンの透明度、 \( T_f \) はテクスチャピクセル色、 \( T_\alpha \) はテクスチャの透明度を表します。

  • fk_TexMode::MODULATE
    この設定では、ポリゴンの色とテクスチャの色を積算します。 そのため、光源による陰影効果が生じます。 透明度に関しても積算となります。 数式として表すと、色と透明度はそれぞれ

    \[ (C_f T_f, \; C_\alpha T_\alpha) \]

    となります。
  • fk_TexMode::REPLACE
    この設定では、ポリゴンの色は完全に無視され、 テクスチャのピクセル色がそのまま表示されます。 そのため、光源による陰影効果が生じません。 また、テクスチャ画像の透明度はそのまま描画に反映されます。 数式として表すと、色と透明度はそれぞれ

    \[ (T_f, \; T_\alpha) \]

    となります。
  • fk_TexMode::DECAL
    この設定では、各ピクセルの透明度に応じて、 ポリゴン色とピクセル色の混合が行われます。 光源による陰影効果は、ピクセルの透明度が低い場合に強くなります。 透明度は、ポリゴンの透明度がそのまま適用されます。 これを数式として表すと、色と透明度はそれぞれ

    \[ (C_f (1-T_\alpha) + T_f T_\alpha, \; C_\alpha) \]

    となります。

デフォルトでは fk_TexMode::MODULATE が設定されています。 なお、同様の設定は fk_Model::setTextureMode() でも行うことが可能で、 fk_Model 側で fk_TexMode::NONE 以外が設定されている場合は fk_Model 側の設定が優先されます。 fk_Model 側で fk_TexMode::NONE が設定されている場合のみ、 この fk_Texture 側での設定が有効となります。

引数
[in]modeモード
参照
getTextureMode(), fk_Model::setTextureMode()

◆ getTextureMode()

fk_TexMode FK::fk_Texture::getTextureMode ( void  )

テクスチャモード取得関数

現在のテクスチャモードを取得します。

戻り値
テクスチャモード
参照
setTextureMode()

◆ setTexRendMode()

void FK::fk_Texture::setTexRendMode ( fk_TexRendMode  mode)

テクスチャ描画品質設定関数

テクスチャの描画品質を設定します。 設定可能なモードは以下の通りです。

なお、デフォルトでは fk_TexRendMode::NORMAL が設定されています。

引数
[in]mode品質モード

◆ getTexRendMode()

fk_TexRendMode FK::fk_Texture::getTexRendMode ( void  )

テクスチャ描画品質取得関数

現在設定されているテクスチャ描画品質モードを取得します。

戻り値
品質モード
参照
setTexRendMode()

◆ setTexWrapMode()

void FK::fk_Texture::setTexWrapMode ( fk_TexWrapMode  mode)

テクスチャ外周部モード設定関数

テクスチャ描画の際、外周部についてどのように描画するかを設定します。 設定できる種類は以下のとおりです。

なお、デフォルトでは fk_TexWrapMode::REPEAT に設定されています。

引数
[in]mode外周部モード

◆ getTexWrapMode()

fk_TexWrapMode FK::fk_Texture::getTexWrapMode ( void  )

テクスチャ外周部モード取得関数

現在設定されているテクスチャ外周部モードを取得します。

戻り値
外周部モード

◆ fillColor() [1/2]

void FK::fk_Texture::fillColor ( const fk_Color color)

一様色初期化関数1

内部の画像ピクセルを、すべて同じ色で初期化します。

引数
[in]color初期化色
参照
fk_Color

◆ fillColor() [2/2]

void FK::fk_Texture::fillColor ( int  r,
int  g,
int  b,
int  a = 0 
)

一様色初期化関数2

内部の画像ピクセルを、すべて同じ色で初期化します。 色要素は、最小値が 0, 最大値が 255 として解釈します。

引数
[in]r初期化色の赤要素
[in]g初期化色の緑要素
[in]b初期化色の青要素
[in]a初期化色の透明度要素

◆ getImageBuf()

const fk_ImType * FK::fk_Texture::getImageBuf ( void  )

画像データ配列先頭アドレス取得関数

画像データを実際に格納しているデータ配列の先頭アドレスを参照します。

警告
この関数は fk_Image の内部構造に強く依存します。 内部構造は今後の更新で変更される可能性があるため、 本関数を用いた場合は後方互換性が保証できません。 また、この関数を用いて得た内部データを更新した場合、 システム全体の整合性が維持できなくなる可能性があります。 上記の2点の理由から、この関数の利用は推奨しません。
戻り値
画像データ配列の先頭アドレス。 テクスチャ画像が生成、設定されていない場合は nullptr を返します。
参照
fk_Image::getBufPointer()

◆ setFrameBuffer()

void FK::fk_Texture::setFrameBuffer ( fk_FrameBuffer buffer)

フレームバッファー設定関数

fk_Renderer により生成されたフレームバッファーをテクスチャーデータとして設定します。 フレームバッファーの詳細は fk_Renderer および fk_FrameBuffer のマニュアルを参照して下さい。

引数
[in]bufferフレームバッファー
覚え書き
本関数によりフレームバッファーを設定した場合、 以前に設定されていた画像データは破棄されます。
参照
fk_Renderer, fk_FrameBuffer

◆ getFrameBuffer()

fk_FrameBuffer * FK::fk_Texture::getFrameBuffer ( void  )

フレームバッファー取得関数

設定されているフレームバッファー情報を取得します。

戻り値
フレームバッファー情報を返します。 フレームバッファー情報が設定されていない場合は nullptr を返します。

◆ initFrameBuffer()

void FK::fk_Texture::initFrameBuffer ( void  )

フレームバッファー情報初期化関数

設定されているフレームバッファー情報を破棄します。

参照
setFrameBuffer()