directx9学習(ライト)

  • ライトの種類

D3DLIGHT_POINT
  ライトは点光源です。

D3DLIGHT_SPOT
  ライトはスポットライト光源です。

D3DLIGHT_DIRECTIONAL
  ライトは平行光源です。

  D3DXVECTOR3 vecDir;
  D3DLIGHT9 light;
  ZeroMemory( &light, sizeof(D3DLIGHT9) );
  light.Type    = D3DLIGHT_DIRECTIONAL;
  light.Diffuse.r = 1.0f;
  light.Diffuse.g = 1.0f;
  light.Diffuse.b = 1.0f;
  vecDir = D3DXVECTOR3(1,1,1);
  D3DXVec3Normalize( (D3DXVECTOR3*)&light.Direction, &vecDir );
  light.Range    = 1000.0f;
  g_pd3dDevice->SetLight( 0, &light );
  g_pd3dDevice->LightEnable( 0, TRUE );
  g_pd3dDevice->SetRenderState( D3DRS_LIGHTING, TRUE );


  • ポイントライト

  D3DXVECTOR3 vecDir;
  D3DLIGHT9 light;
  ZeroMemory( &light, sizeof(D3DLIGHT9) );
  // ポイント
  light.Type    = D3DLIGHT_POINT;
  light.Diffuse.r = 1.0f;
  light.Diffuse.g = 1.0f;
  light.Diffuse.b = 1.0f;
  light.Position = D3DXVECTOR3(-10.0f, 0.0f, 90.0f );
  light.Attenuation0 =1.0f;
  light.Range    = 1000.0f;
  g_pd3dDevice->SetLight( 0, &light );
  g_pd3dDevice->LightEnable( 0, TRUE );
  g_pd3dDevice->SetRenderState( D3DRS_LIGHTING, TRUE );