Im Allgemeinen lautet die Antwort auf Ihre Frage ("Gibt es einen Algorithmus zum Sortieren der Objekte in der richtigen Reihenfolge?") In beliebigen 3D-Einstellungen " Nein" - ein solcher Algorithmus kann nicht existieren, selbst wenn die Objekte so einfach wie Dreiecke sind. Es ist einfach, drei Dreiecke mit einer zyklischen Überlappung zu konstruieren. Stellen Sie sich zum Beispiel vor, Sie blicken entlang der Z-Achse auf drei lange, dünne Dreiecke:
- A: (2,1, 1,9, 1), (1,9, 2,1, 1), (-1, -1, 0)
- B: (-2,1, 1,9, 0), (-1,9, 2,1, 0), (1, -1, 1)
- C: (2,1, 1, 0), (1,9, 1, 0), (-2, 1, 1)
Wenn sich A und B auf dem Bildschirm überlappen (in der Nähe des XY-Punkts (0,0)), befindet sich B oben (hat den höheren Z-Wert): Sein Z-Wert beträgt ungefähr 0,66, während A ungefähr 0,33 beträgt. In ähnlicher Weise befindet sich A oben, wenn sich A und C überlappen (nahe dem XY-Punkt (1, 1)). und wo sich B und C überlappen (nahe dem XY-Punkt (1, -1)), ist C oben. Es gibt keine Möglichkeit, diese drei Dreiecke so zu ordnen, dass das Zeichnen in der angegebenen Reihenfolge das richtige Ergebnis liefert.
Wie Nathan Reed vorschlägt, bedeutet die Tatsache, dass Sie sich in einer isometrischen Ansicht befinden, dass Sie dieses spezielle Problem wahrscheinlich vermeiden können. Die Frage ist, ob es sich lohnt, dies zu vermeiden oder nicht. Dies hängt mehr von Ihrer Umgebung und den verfügbaren Funktionen ab. Die meisten Plattformen, auf denen Sie entwickeln könnten, verfügen jedoch über mindestens eine Form von 3D-Rendering, und meine erste Neigung wäre, für Ihre Zwecke nur darüber hinaus zu huckepack.