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

njCnkEasyMultiDrawObject

CHUNK モデルの描画

書式

void njCnkEasyMultiDrawObject( *object )
NJS_CNK_OBJECT *object

引数

*objectチャンクオブジェクト構造体へのポインタ

戻値

なし

解説

4光源(専用)付きチャンクオブジェクト関数です。 チャンクオブジェクトをカレントマトリクスで座標変換して描画します。 描画属性として、グーローテクスチャと、グーローポリゴンのみ描画できます。 なお、他のモデル関数と違い、ライトの設定は専用の関数を使用します。

njCnkSetEasyMultiLight()光源の設定
njCnkSetEasyMultiLightSwitch()点灯・消灯設定
njCnkSetEasyMultiAmbient()アンビエント設定
njCnkSetEasyMultiLightColor()色設定
njCnkSetEasyMultiLightVector()光源方向設定(平行光源)
njCnkSetEasyMultiLightPoint()光源方向設定(点光源)
njCnkSetEasyMultiLightRange()光源有効範囲設定(点光源)
njCnkSetEasyMultiLightMatrices()方向・位置を反映

サポートしているチャンク形式は、次のとおりです。

頂点チャンクNJD_CV_VN
ストリップチャンクNJD_CS, NJD_CS_UVH, NJD_CS_UVN


用例

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 );
njSetView( &view );
njCnkSetEasyMultiLight(4);
njCnkSetEasyMultiLightVector(0.f, 0.f, -1.f);
njCnkSetEasyMultiLightPoint(NJD_CNK_EASY_MULTILIGHT_2, 0.f, 0.f, -12.f);
njCnkSetEasyMultiLightPoint(NJD_CNK_EASY_MULTILIGHT_3, 0.f, 0.f, -12.f);
njCnkSetEasyMultiLightPoint(NJD_CNK_EASY_MULTILIGHT_4, 0.f, 0.f, -12.f);
njCnkSetEasyMultiLightRange(NJD_CNK_EASY_MULTILIGHT_2, 6.f, 40.f);
njCnkSetEasyMultiLightRange(NJD_CNK_EASY_MULTILIGHT_3, 6.f, 40.f);
njCnkSetEasyMultiLightRange(NJD_CNK_EASY_MULTILIGHT_4, 6.f, 40.f);
njCnkSetEasyMultiAmbient(0.2f, 0.2f, 0.2f);
njCnkSetEasyMultiLightColor(NJD_CNK_EASY_MULTILIGHT_1, 0.5f, 0.4f, 0.7f);
njCnkSetEasyMultiLightColor(NJD_CNK_EASY_MULTILIGHT_2, 1.5f, 0.0f, 0.0f);
njCnkSetEasyMultiLightColor(NJD_CNK_EASY_MULTILIGHT_3, 0.0f, 1.5f, 0.0f);
njCnkSetEasyMultiLightColor(NJD_CNK_EASY_MULTILIGHT_4, 0.0f, 0.0f, 1.5f);
njCnkSetEasyMultiLightSwitch(NJD_CNK_EASY_MULTILIGHT_ALL, 1);
while(1) {
 njClearMatrix();
 njTranslate( NULL, 0.f, 0.f, -10.f );
 njRotateXYZ( NULL, xx,yy,zz );
 njCnkEasyMultiDrawObject( object );
 xx += 257;
 yy += 179;
 zz += 193;
 njWaitVSync();
}

参照

njCnkSetEasyMultiLight()
njCnkSetEasyMultiLightSwitch()
njCnkSetEasyMultiAmbient()
njCnkSetEasyMultiLightColor()
njCnkSetEasyMultiLightVector()
njCnkSetEasyMultiLightPoint()
njCnkSetEasyMultiLightRange()
njCnkSetEasyMultiLightMatrices()
njCnkEasyMultiDrawModel()

njCnkEasyMultiDrawObject
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998