njControl3D
３Ｄオブジェクト描画をコントロールします。

### 書　式

      #include  <Ninja.h>
      void    njControl3D( flag )
      Uint32  flag

### 引　数

flag
  コントロールパラメタ

### 返　値

  なし

### エラー

  なし

### 機　能

  - モデル、オブジェクトの描画をコントロールします。

  - デフォルト値は以下の通りです。

    njControl3D(0);

  - 設定できるパラメタは以下の通りです。

    NJD_CONTROL_3D_DISP_AXIS
      各モデルの原点に長さ１の軸を描画します。
      Ｘ軸−青、Ｙ軸−緑、Ｚ軸−赤

    NJD_CONTROL_3D_NO_CLIP_CHECK
      モデル描画時のクリッピングチェックを行わないようにします。
      完全に画面内に収まるモデル描画の場合、この指定を行うことにより、描画性能を向上することができます。

    NJD_CONTROL_3D_CONSTANT_ATTR
      モデルのアトリビュートを変更できるようにします。
      変更するパラメタは、njSetConstantAttr()で指定します。
      NJD_CONTROL_3D_CNK_CONSTANT_ATTRと同時には設定できません。

    NJD_CONTROL_3D_CONSTANT_MATERIAL
      モデルのマテリアルデータを固定値に変更します。
      変更するパラメタは、njSetConstantMaterial()で指定します。

    NJD_CONTROL_3D_OFFSET_MATERIAL
      モデルのマテリアルデータを補正します。
      補正するパラメタは、njSetConstantMaterial()で指定します。

    NJD_CONTROL_3D_DEPTH_QUEUE
      デプスキューを有効にします。
      デプスキューとは、距離に応じて、透明度（α値）を変化させることをいいます。
      デプスキューのパラメタは、njSetDepthQueue()で指定します。

    NJD_CONTROL_3D_VERTEX_OFFSET
      頂点データを法線方向に移動します
      移動量は _nj_vertex_offset_ 変数で指定します

    NJD_CONTROL_3D_MODEL_CLIP
      モデル単位のクリッピングを有効にします

    NJD_CONTROL_3D_CONSTANT_TEXTURE_MATERIAL
      テクスチャのマテリアルを白にします。
      デフォルトでは、マテリアルの色になります

    NJD_CONTROL_3D_SHADOW
      モデル描画をチープシャドウモードにします。

    NJD_CONTROL_3D_SHADOW_OPAQUE
      モデル描画をチープシャドウモードにします。
      ただし、半透明ポリゴンには影がかかりません。

    NJD_CONTROL_3D_CNK_CONSTANT_ATTR
      チャンクモデルのアトリビュートを変更できるようにします。
      変更するパラメタは、njSetConstantAttr()で指定します。
      NJD_CONTROL_3D_CONSTANT_ATTRと同時には設定できません。

    NJD_CONTROL_3D_TRANS_MODIFIER
      モディファイアボリュームを半透明にも影響するようにします。
      これを設定しない場合、半透明ポリゴンにはモディファイアが影響しません。
      これを設定する場合は、半透明モディファイアバッファを確保しなければなりません。

### 用　例

      sbInitSystem( NJD_RESOLUTION_640x240_NTSCNI, NJD_FRAMEBUFFER_MODE_RGB565, 1 );
      njInitVertexBuffer( 500000, 0, 10000, 0, 0 );
      njInitMatrix( matrix, 128, 0);
      njInit3D( vbuf, 4096 );
      njInitView( &view );

      njCreateLight( &light, NJD_DIR_LIGHT );
      njSetView( &view );

      njControl3D( NJD_CONTROL_3D_NO_CLIP_CHECK | NJD_CONTROL_3D_DISP_AXIS );

      while(1) {
        njClearMatrix();
        njTranslate( NULL, 0.f, 0.f, -10.f );
        njRotateXYZ( NULL, xx,yy,zz );
        njDrawObject( object );
        xx += 257;
        yy += 179;
        zz += 193;
        njWaitVSync();
      }

### 備　考

### 関　連

  njInit3D
  njDrawModel
  njDrawObject
  njSetConstantAttr
  njSetConstantMaterial
  njSetDepthQueue
  njSetCheapShadowMode
  njCnkModDrawOjbect
  njCnkModDrawModel

njControl3D |