void njCnkSetSimpleMultiLight( num ) Int num
num | ライトの登録数(1〜4) |
引数には使用するライトの個数を入れてください。 ただし、ライト個数とライトの種類は以下のように関連します。
個数/番号 | No.1 | No.2 | No.3 | No.4 |
1 | 平行光源 | - | - | - |
2 | 平行光源 | 点光源 | - | - |
3 | 平行光源 | 点光源 | 点光源 | - |
4 | 平行光源 | 点光源 | 点光源 | 点光源 |
: njInitVertexBuffer( 1000000, 0, 1000, 0, 0 ); njInitMatrix( matrix, 8 , 0); njInit3D( vbuf, 4096 ); njInitView( &view ); njSetView( &view ); /* チャンクライトを4個設定 */ njCnkSetSimpleMultiLight( 4 ); /* チャンクライトの平行光源(1番目の光源)方向設定 */ njCnkSetSimpleMultiLightVector(0.f, 0.f, -1.f); /* チャンクライトの点光源位置設定 */ /* 2番目の光源(点光源)の設定 */ njCnkSetSimpleMultiLightPoint(NJD_CNK_EASY_MULTILIGHT_2, 0.f, 0.f, -12.f); /* 3番目の光源(点光源)の設定 */ njCnkSetSimpleMultiLightPoint(NJD_CNK_EASY_MULTILIGHT_3, 0.f, 0.f, -12.f); /* チャンクライトの点光源範囲(距離)設定 */ njCnkSetSimpleMultiLightRange(NJD_CNK_EASY_MULTILIGHT_2, 6.f, 40.f); njCnkSetSimpleMultiLightRange(NJD_CNK_EASY_MULTILIGHT_3, 6.f, 40.f); njCnkSetSimpleMultiLightRange(NJD_CNK_EASY_MULTILIGHT_4, 6.f, 40.f); /* チャンクライトのアンビエント色設定 */ njCnkSetSimpleMultiAmbient(0.1f, 0.1f, 0.1f); /* チャンクライトの光源色設定 */ njCnkSetSimpleMultiLightColor(NJD_CNK_EASY_MULTILIGHT_1, 0.6f, 0.5f, 0.3f); njCnkSetSimpleMultiLightColor(NJD_CNK_EASY_MULTILIGHT_2, 1.f, 0.5f, 0.5f); njCnkSetSimpleMultiLightColor(NJD_CNK_EASY_MULTILIGHT_3, 0.5f, 1.f, 0.5f); njCnkSetSimpleMultiLightColor(NJD_CNK_EASY_MULTILIGHT_4, 0.5f, 0.5f, 1.f); : njClearMatrix(); /* チャンクライトの方向・位置の反映 */ njCnkSetSimpleMultiLightMatrices(); njTranslate( NULL, 0.f, 0.f, -10.f ); njRotateXYZ( NULL, rx,ry,rz ); njCnkSimpleMultiDrawObject( Object );