Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
Delphi 7 Professional
|
Re: Interpolation von Flächen (3D)
28. Jul 2006, 12:55
Es geht um Z-Werte in einem 2D-Spiel. Man kann sich dabei in einem festen 2D-Bild bewegen (typisches Point&Click) also die Spielfigur läuft auf den Punkt zu auf den geklickt wird. Jetzt soll die Figur aber nach "hinten" hin kleiner werden. mit anderen Worten: Es muss eine nicht sichtbare Z-Achse geben. Natürlich könnte man einfach eine Formel angeben, mit der man den y-Wert linear in einen z-Wert umrechnet "Je weiter hinten desto kleiner". Das ist aber nicht ganz korrekt und wirkt bei manchen Bildern ziemlich komisch. Es könnte ja zum Beispiel auf der gleichen Höhe ein großer Platz im Vordergrund oder ein Weg der sich bis in den Horizont schlängelt sein. Außerdem können die Bilckwinkel (und damit die Fluchtpunkte) der Bilder verschieden sein oder Hügel im Bild vorkommen.
Meine Idee war jetzt der Maske die den begehbaren Bereich definiert z-Werte mitzugeben. Diese Maske besteht aus einem oder mehreren Polygonen. Alles was innerhalb eines Polygons liegt ist begehbar. Mit mehreren Polygonen kann man zum Beispiel aus einem großen Bereich einzelne kleine Flächen "rausschneiden" (zB ein großer Platz in dem in der Mitte ein Brunnen steht)
Jeder Punkt des Polygons könnte einen z-Wert besitzen.
Bis jetzt habe ich versucht aus den Abständen zu allen Punkten den Z-Wert eines beliebigen Punktes zu berechnen (Alle Punkte zählen mit rein je näher ein Punkt ist desto stärker wir er gewichtet). Das führt aber leider zu ziemlich komischen Ergebnissen, deshalb habe ich mich zur Interpolation und Splines durchgefragt.
Also meine Situation (jetzt wieder abstrakt) ist:
Gegeben:
eine Menge von Punkten (x,y,z), die in der x,y-Ebene eine Fläche begrenzen
Gesucht:
zu einem beliebigen Punkt (x,y) innerhalb dieser Fläche: Ein eindeutiger z-Wert, sodass die entstehende Fläche aus (x,y,z)-Punkten möglichst "regelmäßig" ist.
Dieses regelmäßig ist schwer zu beschreiben, aber ich denke aus der Erklärung oben wird halbwegs klar was ich meine. Die Figuren sollen eben einigermaßen gleichmäßig größer werden, wenn sie sich zwischen zwei Punkten bewegen.
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA
www.Anyxist.de
|