Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
10. Mär 2011
Die Frage ist doch sehr schnell und performant beantwortbar: Liegen alle (Screenspace-) Punkte des Dreiecks im Tile, ists ganz drin. Liegen alle ausserhalb ists ganz weg, und bei drin/draußen Mischung eben geschnitten. Komplett ohne Mathe mit Koordinatenvergleichen lösbar, da deine Tiles ja sehr wahrscheinlich Achsenparallel sind. In Tiles rendern würde schöne Möglichkeiten bzgl. Multicore...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
10. Mär 2011
Da haste wohl Recht :) Den Z-Buffer kann man sich (mehr oder weniger) allerdings sparen, wenn man die Faces im Screenspace back-to-front sortiert und so auch zeichnet. Damit gingen dann auch Transparenzen, wobei man noch die "hidden faces" wegoptimieren kann um zu viel mehrfach gezeichnete Pixel zu verhindern - deren Erkennung kostet aber natürlich auch ne Kleinigkeit. Front-To-Back ist...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
10. Mär 2011
Warum musst du überhaupt die Z-Werte von Punkten auf den Dreiecksflächen berechnen? Der übliche Weg ist es, 3D-Weltkoordinaten erst in 2D-Bildschirmkoordinaten zu transformieren, und dann dadrauf die Flächenfarben zu interpolieren. Z fällt für die teuren pixelweisen Rechnungen dann ganz weg.