|
殺虫侍
|
Assimp で読み込んだ 3D モデルを管理する基底クラス [詳解]
#include <model.h>
公開メンバ関数 | |
| Model () | |
| コンストラクタ | |
| ~Model () | |
| デストラクタ | |
| bool | Setup (Renderer &renderer, const char *filePath) |
| モデルファイルを読み込んでメッシュを構築する | |
| void | Terminate () |
| メッシュリソースを解放する | |
| void | Draw () |
| 全メッシュを描画する | |
| void | ProcessNode (aiNode *node, const DirectX::XMMATRIX &parentTransform) |
| Assimp のノード階層を再帰的に処理してメッシュを構築する | |
| void | SetPosition (const DirectX::XMFLOAT3 &pos) |
| モデルのワールド座標を設定する | |
| void | SetRotation (const DirectX::XMFLOAT4 &rot) |
| モデルの回転を設定する | |
| void | SetScale (const DirectX::XMFLOAT3 &scale) |
| モデルのスケールを設定する | |
| void | SetPivot (const DirectX::XMFLOAT3 &pivot) |
| 回転のピボット座標を設定する | |
| void | SetPivotRotation (const DirectX::XMFLOAT4 &rot) |
| ピボットを中心とした追加回転を設定する | |
| void | ChangeMaterial () |
| マテリアルを全メッシュに再適用する | |
限定公開メンバ関数 | |
| virtual void | initializeMaterialSet (int idx, aiMaterial *mat)=0 |
| インデックス idx のメッシュにマテリアルを設定する(サブクラスで実装) | |
限定公開変数類 | |
| Renderer * | m_pRenderer = nullptr |
| レンダラーへのポインタ | |
| MaterialSet | m_materialSets [10] |
| マテリアルセット配列(最大10) | |
Assimp で読み込んだ 3D モデルを管理する基底クラス
ノード階層をトラバースしてメッシュを構築し、 ワールドトランスフォーム(位置・回転・スケール・ピボット)を提供する。 マテリアルの初期化はサブクラスが実装する。
| Model::Model | ( | ) |
コンストラクタ
| Model::~Model | ( | ) |
デストラクタ
| void Model::ChangeMaterial | ( | ) |
マテリアルを全メッシュに再適用する
| void Model::Draw | ( | ) |
全メッシュを描画する
|
protectedpure virtual |
インデックス idx のメッシュにマテリアルを設定する(サブクラスで実装)
| idx | メッシュインデックス |
| mat | Assimp のマテリアルデータ |
BoxModel, StageModel, WeaponModelで実装されています。
| void Model::ProcessNode | ( | aiNode * | node, |
| const DirectX::XMMATRIX & | parentTransform ) |
Assimp のノード階層を再帰的に処理してメッシュを構築する
| node | 処理対象のノード |
| parentTransform | 親ノードのワールド変換行列 |
| void Model::SetPivot | ( | const DirectX::XMFLOAT3 & | pivot | ) |
回転のピボット座標を設定する
| pivot | ピボット座標 |
| void Model::SetPivotRotation | ( | const DirectX::XMFLOAT4 & | rot | ) |
ピボットを中心とした追加回転を設定する
| rot | 回転クォータニオン |
| void Model::SetPosition | ( | const DirectX::XMFLOAT3 & | pos | ) |
モデルのワールド座標を設定する
| pos | 座標 |
| void Model::SetRotation | ( | const DirectX::XMFLOAT4 & | rot | ) |
モデルの回転を設定する
| rot | 回転クォータニオン |
| void Model::SetScale | ( | const DirectX::XMFLOAT3 & | scale | ) |
モデルのスケールを設定する
| scale | スケール値 |
| bool Model::Setup | ( | Renderer & | renderer, |
| const char * | filePath ) |
モデルファイルを読み込んでメッシュを構築する
| renderer | 3Dレンダラーの参照 |
| filePath | モデルファイルのパス |
| void Model::Terminate | ( | ) |
メッシュリソースを解放する
|
protected |
マテリアルセット配列(最大10)
|
protected |
レンダラーへのポインタ