Ich versuche mit Direct3D ein glattes Gelände zu rendern. Ich habe ein 50 * 50-Gitter mit allen y-Werten = 0 und eine Reihe von 3D-Punkten, die die Position auf dem Gitter und die Tiefe oder Höhe des "Tals" oder "Hügels" angeben. Ich muss die y-Werte der Gitterscheitelpunkte höher oder niedriger machen, je nachdem, wie nahe sie an jedem 3D-Punkt liegen. Am Ende sollte ich also einen Renderer für glattes Gelände haben.
Ich bin mir überhaupt nicht sicher, wie ich das machen kann. Ich habe versucht, die Höhe der Scheitelpunkte basierend auf dem Abstand zu jedem Punkt zu ändern, indem ich nur diese Grundformel verwendet habe:
dist = sqrt(a² + b² + c²)
Dabei sind a, b und c der x-, y- und z-Abstand von einem Scheitelpunkt zu einem 3D-Punkt. Das Ergebnis, das ich damit bekomme, ist überhaupt nicht glatt.
Ich denke, es gibt wahrscheinlich einen besseren Weg.
Hier ist ein Screenshot von dem, was ich momentan habe: https://dl.dropbox.com/u/2562049/terrain.jpg
$dist = \sqrt{a^2 + b^2 + c^2}$
.