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);