NNSG3dResMdl

構造体の定義

#include <nnsys/g3d/binres/res_struct.h>

typedef struct NNSG3dResMdl_
{
    u32                size;        // モデルのサイズ
    u32                ofsSbc;      // &NNSG3dResMdlを起点としたSbcへのオフセット
    u32                ofsMat;      // &NNSG3dResMdlを起点としたNNSG3dResMatへのオフセット
    u32                ofsShp;      // &NNSG3dResMdlを起点としたNNSG3dResShpへのオフセット
    u32                ofsEvpMtx;   // &NNSG3dResMdlを起点としたNNSG3dEvpMtxへのオフセット
    NNSG3dResMdlInfo   info;        // モデル情報(固定長)
    NNSG3dResNodeInfo  nodeInfo;    // ノード情報
    // SBC
    // Materials
    // Shapes
    // EvpMtxs
}
NNSG3dResMdl;

typedef struct NNSG3dResMdlInfo_
{
    u8         sbcType;
    u8         scalingRule;
    u8         texMtxMode;
    u8         numNode;

    u8         numMat;
    u8         numShp;
    u8         firstUnusedMtxStackID;
    u8         dummy_;

    fx32       posScale;      
    fx32       invPosScale;

    u16        numVertex;
    u16        numPolygon;
    u16        numTriangle;
    u16        numQuad;

    fx16       boxX, boxY, boxZ;
    fx16       boxW, boxH, boxD;

    fx32       boxPosScale;
    fx32       boxInvPosScale;
}
NNSG3dResMdlInfo;

構造体の解説

NNSG3dResMdl構造体は、1つのモデルデータを格納するデータ構造の根に対応する構造体で、モデルデータ内の情報にアクセスする場合はこの構造体を経由することになります。この構造体は、.nsbmdファイル内のデータとして存在していてg3dcvtrによる.imdファイルのコンバート時に作成されています。

NNSG3dResMdl構造体からは以下のようなデータにアクセスすることができます。

この構造体とこの構造体から到達できるマテリアルやシェイプ等の内容は、描画中にG3Dライブラリから変更されることはありません(コールバック関数内で変更される場合を除く)。

NNSG3dResMdlInfo構造体のメンバ 説明
sbcType Structure Byte Codeタイプ識別子(NNSG3dSbcType)
scalingRule スケーリングルール識別子(NNSG3dScalingRule)
texMtxMode テクスチャ行列計算方式識別子(NNSG3dTexMtxMode)
numNode モデル内のノード数
numMat モデル内のマテリアル数
numShp モデル内のシェイプ数
firstUnusedMtxStackID 行列スタックの行列でこのモデルの描画時に使わない行列の最初のID
posScale 頂点位置座標に乗ずるスケール値。ジオメトリエンジンのスケールコマンドへ渡す値
invPosScale posScaleの逆数
numVertex .imdファイルにおける<output_info>要素のvertex_size属性の値がそのまま入っている。
numPolygon .imdファイルにおける<output_info>要素のpolygon_size属性の値がそのまま入っている。
numTriangle .imdファイルにおける<output_info>要素のtriangle_size属性の値がそのまま入っている。
numQuad .imdファイルにおける<output_info>要素のquad_size属性の値がそのまま入っている。
boxX, boxY, boxZ .imdファイルにおける<box?test>要素のxyz属性の値がそのまま入っている。
boxW, boxH, boxD .imdファイルにおける<box?test>要素のwhd属性の値がそのまま入っている。
boxPosScale ボックスの座標やサイズに乗ずるスケール値。
boxInvPosScale boxPosScaleの逆数

参照

カーネル モデル バイナリリソース

履歴

2007/05/17 構造体の定義を追加
2004/10/13 初版