njCnkPreLightObject | English
    ▲|INDEX|▼
チャンクモデルの光源の前計算

### 書　式

      #include <Ninja.h>
      void	njCnkPreLightObject( object )
      NJS_CNK_MODEL	*object

### 引　数

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

### 返　値

  なし

### エラー

  なし

### 機　能

  チャンクオブジェクトの光源をあらかじめ計算しておくものです。
  光源の計算結果は頂点チャンクに溜め込みます。
  そのため、頂点チャンク形式は、NJD_CV_VN_D8 のみになっています。
  njCnkDrawObjectと同様の光源計算を行いますが、マテリアルは白として計算します。
  また、スペキュラは反映されません。

### 用　例

      	sbInitSystem( NJD_RESOLUTION_640x240_NTSCNI, NJD_FRAMEBUFFER_MODE_RGB565, 1 );

      	njInitVertexBuffer( 1000000, 0, 1000, 0, 0 );
      	njInitMatrix( matrix, 8 , 0);
      	njInit3D( vbuf, 4096 );

      	njInitView( &view );
      	njSetView( &view );

      	njCreateLight(<[0], NJD_SPEC_DIR);
      	njCreateLight(<[1], NJD_SPEC_POINT);
      	njCreateLight(<[2], NJD_SPEC_POINT);
      	njCreateLight(<[3], NJD_SPEC_POINT);

      	njSetLightDirection(<[0], 0.f, 0.f, -1.f);
      	njSetLightLocation(<[1], 0.f, 0.f, -12.f);
      	njSetLightLocation(<[2], 0.f, 0.f, -12.f);
      	njSetLightLocation(<[3], 0.f, 0.f, -12.f);
      	njSetLightRange(<[1], 4.f, 16.f);
      	njSetLightRange(<[2], 4.f, 16.f);
      	njSetLightRange(<[3], 4.f, 16.f);

      	njCnkSetAmbient(0.3f, 0.3f, 0.3f);

      	njSetLightColor(<[0], 0.3f, 0.2f, 0.1f);
      	njSetLightColor(<[1], 1.f, 0.0f, 0.0f);
      	njSetLightColor(<[2], 0.0f, 1.f, 0.0f);
      	njSetLightColor(<[3], 0.0f, 0.0f, 1.f);
      	njSetLightIntensity(<[0], 0.f, 1.f, 0.f);
      	njSetLightIntensity(<[1], 0.f, 1.f, 0.f);
      	njSetLightIntensity(<[2], 0.f, 1.f, 0.f);
      	njSetLightIntensity(<[3], 0.f, 1.f, 0.f);

      	if( _stop ) {
      		njUnitMatrix(&m);
      		njTranslate( &m, 0.f, 0.f, zzz );
      		njRotateXYZ( &m, xx1,yy1,zz1 );
      		njCalcPoint( &m, &p, &p1 );

      		njUnitMatrix(&m);
      		njTranslate( &m, 0.f, 0.f, zzz );
      		njRotateXYZ( &m, xx2,yy2,zz2 );
      		njCalcPoint( &m, &p, &p2 );

      		njUnitMatrix(&m);
      		njTranslate( &m, 0.f, 0.f, zzz );
      		njRotateXYZ( &m, xx3,yy3,zz3 );
      		njCalcPoint( &m, &p, &p3 );

      		xx1 += 357;
      		yy1 += 269;
      		zz1 += 211;
      		xx2 += 169;
      		yy2 += 351;
      		zz2 += 223;
      		xx3 += 109;
      		yy3 += 217;
      		zz3 += 273;

      		njSetLightLocation(<[1], p1.x, p1.y, p1.z);
      		njSetLightLocation(<[2], p2.x, p2.y, p2.z);
      		njSetLightLocation(<[3], p3.x, p3.y, p3.z);
      	}

      	njClearMatrix();
      	njTranslate( NULL, 0.f, 0.f, zzz );
      	njRotateXYZ( NULL, xx,yy,zz );

      	if( _stop ) 	njCnkPreLightObject( OBJECT );

      	njCnkEasyDrawObject( OBJECT );

### 備　考

### 関　連

  njCnkDrawObject

njCnkPreLightObject | ▲|INDEX|▼