# NNS_G3dRenderObjSetMatAnmBuffer

## 構文

      #include <nnsys/g3d/kernel.h>

      void
      NNS_G3dRenderObjSetMatAnmBuffer(
          NNSG3dRenderObj*    pRenderObj,
          NNSG3dMatAnmResult* buf
      );

## 引数

pRenderObj | `NNSG3dRenderObj`構造体へのポインタ
buf | マテリアルアニメーション用レコードバッファへのポインタ

## 返り値

なし。

## 説明

レンダリングオブジェクトにマテリアルの計算結果を格納／再生するためのレコードバッファをアタッチします。登録するレコードバッファは`NNS_G3D_RENDEROBJ_MATBUFFER_SIZE(pRenderObj->resMdl->info.numMat)`バイト以上の 領域でなければなりません。
このバッファは描画されるモデルの各マテリアルの計算結果を保存しておくためのものです。通常この情報は保存されないのですが、`NNS_G3dRenderObjSetMatAnmBuffer`関数を使用してレコードバッファをアタッチすることにより、レコードバッファにデータを保存したりレコードバッファからアニメーションを再生したりできるようになります。レコードバッファにデータを保存する場合には、`NNS_G3dRenderObjSetFlag`関数を使用してフラグ`NNS_G3D_RENDEROBJ_FLAG_RECORD`をセットしてから`NNS_G3dDraw`関数を実行してください。レコードバッファに記録されているデータを再生する場合には、フラグ`NNS_G3D_RENDEROBJ_FLAG_RECORD`をリセットしてから`NNS_G3dDraw`関数を実行してください。
以下に利用例を記しておきます。

- マテリアルアニメーションが適用されていないモデルのマテリアル計算を省略する。
- マテリアルアニメーションのLOD(遠くの物体のアニメーションを端折ること）を行う。
- アニメーションの全てのフレームをバッファに記録してマテリアルアニメーションの計算時間を節約する。
- 複数の同一モデルの2体目以降の計算を省略する。

## 参照

`NNS_G3dRenderObjReleaseMatAnmBuffer, NNS_G3dRenderObjSetJntAnmBuffer`

## 履歴

2004/09/16 利用例の追加
2004/08/02 初版