NNSG3dMatAnmResult

構造体の定義

#include <nnsys/g3d/anm.h>

typedef enum
{
    NNS_G3D_MATANM_RESULTFLAG_TEXMTX_SCALEONE  = 0x00000001,
    NNS_G3D_MATANM_RESULTFLAG_TEXMTX_ROTZERO   = 0x00000002,
    NNS_G3D_MATANM_RESULTFLAG_TEXMTX_TRANSZERO = 0x00000004,

    NNS_G3D_MATANM_RESULTFLAG_TEXMTX_SET       = 0x00000008,
    NNS_G3D_MATANM_RESULTFLAG_TEXMTX_MULT      = 0x00000010,
    NNS_G3D_MATANM_RESULTFLAG_WIREFRAME        = 0x00000020
}
NNSG3dMatAnmResultFlag;

typedef struct NNSG3dMatAnmResult_
{
    NNSG3dMatAnmResultFlag flag;
    u32                    prmMatColor0;
    u32                    prmMatColor1;
    u32                    prmPolygonAttr;
    u32                    prmTexImage;
    u32                    prmTexPltt;

    fx32                   scaleS, scaleT;
    fx16                   sinR, cosR;
    fx32                   transS, transT;

    u16                    origWidth, origHeight;
    fx32                   magW, magH;
}
NNSG3dMatAnmResult;

構造体の解説

NNSG3dMatAnmResult構造体は、マテリアル情報を保持しています。G3Dはこの構造体に格納された情報を使用してジオメトリエンジンにコマンドを送信をします。この構造体は、NNSi_G3dFuncSbc_MAT関数(SBCのMATコマンド処理時に呼び出される)の実行時に作成され、使用されます。

マテリアルアニメーションは、この構造体に格納されているデータをNNSi_G3dFuncSbc_MAT関数内部においてアニメーションデータに従い設定することにより実装されています。

また、NNS_G3D_SBC_MATにコールバックを設定することによって、マテリアルの設定をユーザープログラムからコントロールすることができます。

NNSG3dMatAnmResult構造体のメンバ 説明
flag NNSG3dMatAnmResultFlag型をもつフラグです。
prmMatColor0 diffuseとambientが格納されています。MaterialColor0ジオメトリコマンドのパラメタと一致します。
prmMatColor1 specularとemissionが格納されています。MaterialColor1ジオメトリコマンドのパラメタと一致します。
prmPolygonAttr ポリゴン関連属性値が格納されています。PolygonAttrジオメトリコマンドのパラメタと一致します。
prmTexImage テクスチャパラメータが格納されています。TexImageParamジオメトリコマンドのパラメタと一致します。
prmTexPltt テクスチャパレットのベースアドレスが格納されています。TexPlttBaseジオメトリコマンドのパラメタと一致します。
scaleS テクスチャのS方向のスケール値です。
scaleT テクスチャのT方向のスケール値です。
sinR テクスチャの回転角の正弦値です。
cosR テクスチャの回転角の余弦値です。
transS テクスチャのS方向の平行移動成分です。
transT テクスチャのT方向の平行移動成分です。
origWidth g3dcvtr出力時にマテリアルに対応していたテクスチャの幅です。
origHeight g3dcvtr出力時にマテリアルに対応していたテクスチャの高さです。
magW モデルとテクスチャのバインド時に決定される倍率です。通常はFX32_ONEです。
magH モデルとテクスチャのバインド時に決定される倍率です。通常はFX32_ONEです。

NNSG3dMatAnmResultFlagの値 説明
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_SCALEONE このフラグがセットされている場合、scaleS及びscaleTに格納されている値は無効です。両方ともFX32_ONEが入っているものとして扱われます。
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_ROTZERO このフラグがセットされている場合、sinR及びcosRに格納されている値は無効です。sinRには0が、cosRにはFX32_ONEが入っているものとして扱われます。
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_TRANSZERO このフラグがセットされている場合、transS及びtransTに格納されている値は無効です。両方とも0が入っているものとして扱われます。
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_SET このフラグがセットされている場合、この構造体の設定に対応するテクスチャ行列がカレントテクスチャ行列に設定されます。
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_MULT このフラグがセットされている場合、この構造体の設定に対応するテクスチャ行列がカレントテクスチャ行列に乗算されます。
NNS_G3D_MATANM_RESULTFLAG_WIREFRAME このフラグがセットされている場合、マテリアルに属するポリゴンはワイヤーフレームで描画されます。

参照

カーネル 描画エンジン

履歴

2004/10/13 初版