当我转灯。我可以看到我的物体,但是没有3D灯光。
我将对象位置设置为0、0、10。
这是我的代码来设置我的光

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;
  light.Diffuse.a  = 1.0f;
  light.Range      = 1000.0f;

  // Create a direction for our light - it must be normalized
  D3DXVECTOR3 vecDir;
  vecDir = D3DXVECTOR3(0.0f,10.0f,10);
  D3DXVec3Normalize( (D3DXVECTOR3*)&light.Direction, &vecDir );

  // Tell the device about the light and turn it on
  d3ddev->SetLight( 0, &light );
  d3ddev->LightEnable( 0, TRUE );

最佳答案

如果没有更完整的源 list ,我们不可能确切地告诉您问题出在哪里。话虽如此,我有一个主意。

检查对象的法线。如果法线不正确,则打开照明可能会导致对象渲染为黑色,如果背景为黑色,则可能使其消失。

关于c++ - DirectX一切都消失了,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5121834/

10-12 23:44