Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » DirectX » D3DLIGHT_SPOT und die Position/Direction

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.10.2006, 20:39 Uhr
~Monique
Gast


Ich hab irgendwie etwas Probleme mein Spotlight auf meinen Würfel leuchten zu lassen.

Dabei vermute ich mal, dass ich irgendwie mit den Koordinatensystem nicht ganz klar komme und deswegen am ziel vorbei leuchte. hier mal der code.


C++:
BOOL SetLight()
    {
        D3DLIGHT9 pLight;
        memset(&pLight, 0, sizeof(D3DLIGHT9));

        pLight.Type = D3DLIGHT_SPOT;
        pLight.Diffuse.r  = 1.0f;
        pLight.Diffuse.g  = 1.0f;
        pLight.Diffuse.b  = 1.0f;
        pLight.Diffuse.a  = 1.0f;

        pLight.Ambient.r  = 1.0f;
        pLight.Ambient.g  = 0.3f;
        pLight.Ambient.b  = 0.4f;

        pLight.Range = 1000.f;
        pLight.Falloff = 1.0f;

        pLight.Attenuation0 = 1.0f;
        pLight.Attenuation1 = 0.0f;
        pLight.Attenuation2 = 0.0f;

        pLight.Theta = DEG_TO_RAD(30);
        pLight.Phi   = DEG_TO_RAD(170);

        D3DXVECTOR3 vecDir;

        vecDir = D3DXVECTOR3(0.0f, 0.0f, 1.0f);
        D3DXVec3Normalize( (D3DXVECTOR3*)&pLight.Direction, &vecDir);

        D3DXVECTOR3 vecPos;

        vecPos = D3DXVECTOR3(0.0f, 0.0f, 0.0f);
        D3DXVec3Normalize( (D3DXVECTOR3*)&pLight.Position, &vecPos);

        g_pD3DDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
        g_pD3DDevice->SetRenderState(D3DRS_COLORVERTEX, FALSE);

        
        g_pD3DDevice->SetLight(0, &pLight);

        g_pD3DDevice->LightEnable(0, TRUE);

        return TRUE;
    }


Meine Kamera bzw. Blinwinkel ist wie folgt gesetzt

C++:
BOOL SetCamera()
{
    D3DXMATRIX view;

    D3DXVECTOR3 eye(0.0f, 0.0f, -6.5f);
    D3DXVECTOR3 lookAt(0.0f, 0.0f, 0.0f);
    D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);

    D3DXMatrixLookAtLH(&view, &eye, &lookAt, &up);


    g_pD3DDevice->SetTransform(D3DTS_VIEW, &view);

    return TRUE;

}

BOOL SetPerspective()
{

   D3DXMATRIX Projection;

   D3DXMatrixPerspectiveFovLH(&Projection, 1.0f, 1024/768, -6.0f, 0.0f);

   // Set the projection.
   g_pD3DDevice->SetTransform(D3DTS_PROJECTION, &Projection);
  
   return TRUE;
}


Sieht jemand einen Fehler?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ DirectX ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: