Ruckelei der Bewegungen bei Heightmaps



  • guten tach allesamt.
    Ich habe ein Problem mit meinen Heightmaps. Sie ruckeln einfach zu viel, wenn ich mein Objekt in die richtige Höhe über dem Boden setze. ich habe auch schon die dichte der punkte vervielfacht und eben nur bspw jeden 5.punkt gezeichnet und die höhe mit allen punkten berechnet, aber das reciht einfach nicht.
    ich habe es auch schon versucht, bei einer Kollision mit dem Boden, die Höhe des Objektes langsahm herauf zu setzen, aber da hatte ich das Porblem, dass mein Objekt (oder die Kamera) im berg versinkt und später erst wieder auftaucht. das is ja auch nix gescheites.
    hat einer von euch eine Idee oder wie schafft ihr das, wenn ihr mit Heightmaps und Heightmap-Kollision arbeitet?
    ich hoffe, ihr versteht, was ich meine.
    heimschmiede



  • Was ist das Problem? Die Framerate? Die Kollision? Was anderes?

    Bitte lesen. Danke.

    Bye, TGGC (Dem beste BdT)



  • entschuldigung, aber ich bin nicht der Held in Erklärungen...

    mein Problem liegt bei der Kollision und die daraufhin folgende Korrigierung des Objektes bei Heightmaps.
    Wenn man bspw die Kamera immer 0.5 Einheiten über dem Boden bewegen will.
    ypos=Heightmap[int(xpos)][int(zpos)]+0.5;
    wenn man nun mit der kamera über die gebirgige Heightmap schickt, wird man stark durchgeruckelt (nicht die fps).
    ich arbeite gerade aben daran, dass sich die Kamera eben sehr flüssig und ohne starken Höhenwechsel bewegt. dabei bin ich allerdings auf das Problem gestoßen, dass meine Kamera zuuu träge lief und eben in einen "Berg" eingetaucht ist.
    Jetzt frage ich mich, wie das andere Programmierer bei anderen Spielen hinbekommen. Theorien würden mir reichen.
    heimschmiede



  • vielleicht durch ebenere Berge und große Polygone?



  • die berge sind schon relativ eben. noch ebener, dann wären es keine berge mehr, sondern anhöhen.



  • Stichwort "Interpolation".

    Bye, TGGC (Zu viele Primitive hier.)



  • Du liest ja auch die Hoehe des naechsten Vertex aus:

    ypos=Heightmap[int(xpos)][int(zpos)]+0.5;
    

    Wie waehrs, wenn du dir die Position dazwischen raussuchst?
    Die Position an der du stehst ist ja in einem Dreieck und nicht an einem festen Punkt.



  • wie bekommt man denn die Höhe in einem Punkt innerhalb eines Rechtecks (zwei Dreiecken). wie sieht die Mathematik dazu aus?
    heimschmiede



  • Wenn du Wissensluecken in 3D Math hast, bitte lesen:
    http://www.flipcode.com/geometry/



  • danke. ich hab jetzt zwar nur grob drübergeschaut, weil ich eigentlich viel über Vektoren usw weiß, aber dafür ist mir eine Idee gekommen, wie man das rechnen kann.
    Ich habs implementiert und es ruckelt tatsächlich nicht so stark!

    dabei kommt mir aber noch eine zweite Frage:
    wie stellt man denn Kollisionen bei Bergen fest? Man steht zwar eine gewisse Höhe über dem Boden, aber man küsst mit einem Modell oder mit der Kamera die Steilwand vor einem. Hat einer von euch da eine Idee?
    heimschmiede



  • Man könnte mehrere Sample Points benutzen.

    Bye, TGGC \-/



  • ist ne Überlegung wert.
    man nimmt einen Punkt vor sich und errechnet die entsprechende Höhe. und wenn die Höhenunterschiede über einem gewissen Wert liegen, wird das Objekt angehalten.

    danke an alle!


Anmelden zum Antworten