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

njControl3D

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

書式

void njControl3D( flag ) 
Uint32 flag 

引数

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

戻り値

なし

解説

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

 0   何の指定も行わない(デフォルト) 
 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_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   モディファイアボリュームを半透明にも影響するようにする。これを設定しないと、半透明ポリゴンにはモディファイアが影響しない。これを設定する場合は、半透明モディファイアバッファを確保しなければならない。 
 NJD_CONTROL_3D_USE_PUNCHTHROUGH   半透明ポリゴンをパンチスルーポリゴンとして扱う。これを設定する場合は、パンチスルーバッファを確保しなければならない。 
 NJD_CONTROL_3D_CNK_BLEND_MODE   チャンクモデルのブレンドモードを変更する。変更するパラメタは、njSetCnkBlendMode()関数で設定する。 
 NJD_CONTROL_3D_DISABLE_NEAR_CLIP   ニアクリップをポリゴン単位にする。これによりポリゴンの補間を行わないので、性能が向上する。 
 NJD_CONTROL_3D_ENV_UV_SCROLL   環境マッピングのテクスチャのスクロールを行う。スクロールする値の設定は、njCnkSetUvScroll()関数で行う。 
 NJD_CONTROL_3D_MIRROR_MODEL   njMirror()関数などで、マトリクスが反転した場合にモデル描画を正しく行う。 


用例

	:
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,1999