#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;
The NNSG3dMatAnmResult
structure stores material information. GD3 uses the information stored in this structure to send commands to the Geometry Engine. The structure is created and used during the execution of the NNSi_G3dFuncSbc_MAT
function (when called during processing of the SBC's MAT command).
To implement material animation, the NNSi_G3dFuncSbc_MAT
function acts internally to set the data stored in this structure in accordance with the animation data.
By setting a callback in NNS_G3D_SBC_MAT
, the material's settings can also be controlled from the user program.
Data Member | Description |
---|---|
flag | Flag of type NNSG3dMatAnmResultFlag . |
prmMatColor0 | Stores diffuse and ambient. Equivalent to the parameter of the MaterialColor0 geometry command. |
prmMatColor1 | Stores specular and emission. Equivalent to the parameter of the MaterialColor1 geometry command. |
prmPolygonAttr | Stores the polygon attribute values. Equivalent to the parameters of the PolygonAttr geometry command. |
prmTexImage | Stores the texture parameters. Equivalent to the parameters of the TexImageParam geometry command. |
prmTexPltt | Stores the texture palette's base address. Equivalent to the parameter of the TexPlttBase geometry command. |
scaleS | The texture's scale value in the S direction. |
scaleT | The texture's scale value in the T direction. |
sinR | The sine of the texture's rotation angle. |
cosR | The cosine of the texture's rotation angle. |
transS | The texture's translation component in the S direction. |
transT | The texture's translation component in the T direction. |
origWidth | The width of the texture corresponding to the material at time of g3dcvtr output. |
origHeight | The height of the texture corresponding to the material at time of g3dcvtr output. |
magW | The magnification determined when binding model and texture. Normally this is FX32_ONE. |
magH | The magnification determined when binding model and texture. Normally this is FX32_ONE. |
NNSG3dMatAnmResultFlag Values |
Description |
---|---|
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_SCALEONE |
When this flag is set, the values stored in scaleS and scaleT are disabled. Both are treated as if FX32_ONE has been entered. |
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_ROTZERO |
When this flag is set, the values stored in sinR and cosR are disabled. sinR is 0 , but cosR is treated as if FX32_ONE has been entered. |
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_TRANSZERO |
When this flag is set, the values stored in transS and transT are disabled. Both are treated as if 0 has been entered. |
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_SET |
When this flag is set, the texture matrix corresponding to this structure's settings is set as the current texture matrix. |
NNS_G3D_MATANM_RESULTFLAG_TEXMTX_MULT |
When this flag is set, the current texture matric is multiplied by the texture matrix corresponding to this structure's settings. |
NNS_G3D_MATANM_RESULTFLAG_WIREFRAME |
When this flag is set, the polygons belonging to the material are rendered as wireframes. |
2004/10/13 Initial version.
CONFIDENTIAL