##### Ninjaライブラリ - モデル関数

# njControl3D

3Ｄオブジェクト描画のコントロール

### 書式

  void njControl3D( flag )
  Uint32 flag

### 引数

  flag | コントロールパラメータ

### 戻値

  なし

### 解説

  モデル、オブジェクトの描画をコントロールします。 コントロールパラメータは以下のパラメータを"|"で列挙して指定することができます。

  0 | 何の指定も行わない(デフォルト)
  NJD_CONTROL_3D_DISP_AXIS | 各モデルの原点に長さ1の軸を描画(X軸-青、Y軸-緑、Z軸-赤)
  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()
  njCnkModDrawObject()
  njCnkModDrawModel()

njControl3D

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998