C:\DXSDK\Samples\C++\Direct3D\Water\water.dsw



  • Da ich "Wasserprogrammierung" sehr interessant finde, hab ich mir mal das Beispiel von DirectX9 angeschaut. Aber auch nach mehreren Stunden intensiver Forschung, hab ich die Funktion HRESULT CWater::Update(..) nahe zu NULL verstanden.

    Was könnt Ihr mit denn zu diesem Sample sagen?



  • Hier wird, denk ich mal, der Normal-Vektor der Wasseroberfläche berechnet. Aber wie funktioniert denn das nun genau... ich steig da irgendwie nicht ein.

    float f;
    
    f = m_pSurface[uXN + uYN].fHeight - m_pSurface[uXP + uYP].fHeight; vecN.x = vecN.z = f;           
    f = m_pSurface[uX  + uYN].fHeight - m_pSurface[uX  + uYP].fHeight; vecN.z += f;
    f = m_pSurface[uXP + uYN].fHeight - m_pSurface[uXN + uYP].fHeight; vecN.x -= f; vecN.z += f;
    f = m_pSurface[uXN + uY0].fHeight - m_pSurface[uXP + uY0].fHeight; vecN.x += f;
    
    vecN.y = 1.0f;
    D3DXVec3Normalize(&vecN, &vecN);
    

Anmelden zum Antworten