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

書 式

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

引 数

flag
コントロールパラメタ

返 値

なし

エラー

なし

機 能

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

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

    njControl3D(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
    njCnkModDrawOjbect
    njCnkModDrawModel

  • njControl3D

    Copyright SEGA ENTERPRISES, LTD., 1998