Struktur von Trackmarks
Trackmarks haben keinen Bezug zur Polygonstruktur des Terrains; sie werden im Overlay-Verfahren darüber gezeichnet. Am schwierigsten ist die Verwaltung der Marken, insbesondere beim Beginn und Ende eines Tracks. Da ein Trackmark immer zwischen zwei Punkten liegt, sind auch die vorangegangenen Marken betroffen und müssen zur Berechnung herangezogen werden. Dieses geschieht in Tuxracer ziemlich undurchsichtig, teilweise mit verworrenen Hilfskonstruktionen. Deshalb versuche ich, eine klar strukturiertes, in sich schlüssiges Verfahren zu entwickeln, das vor allem auch leichter optimiert werden kann. Die Optimierung ist unerlässlich, da Trackmarks sehr viel Perfomance schlucken.

Gesteuert wird der Vorgang durch eine Modusvariable, die zu Beginn auf BREAK steht. Wenn zum ersten Mal eine trackfähige Textur festgestellt wird, wird eine lokale Pseudomarke berechnet. Danach wird der Modus auf START gesetzt. In der Regel ist das Terrain immer noch trackfähig, und nun wird die erste reguläre Marke berechnt und als HEAD gekennzeichnet. Dazu wird die Pseudomarke herangezogen. Der Modus wird anschließend auf CONTINUE gestellt.
Im Continue-Modus geht es weiter, Marke für Marke, bis erstmalig das Terrain nicht mehr trackfähig ist. Nun wird keine neue Marke mehr berechnet und gespeichert, sondern stattdessen die vorhergehende als TAIL gekennzeichnet. Danach ist die Umstellung auf den Modus BREAK. So lässt sich dem jeweils aktuellen Modus und den Terraingegebenheiten genau ableiten, wie die Marken zu berechnen sind.
Eine Besonderheit liegt vor, wenn die trackfähigen Terrains nur sehr klein sind. Dann ergeben sich die Verhältnisse in der unteren Zeichnung. Es kann dazu führen, dass nur eine reguläre Marke berechnet und gespeichert wird (links). Da es die erste und gleichzeitig letzte Marke ist, wird sie zunächst auf HEAD, dann auf TAIL gestellt. Letzten Endes dürfte es bei solch kurzen Spuren unerheblich sein. Rechts wird keine Marke gespeichert. Bereits im Startzustand wird festgestellt, dass der Track zu Ende ist.
Schließlich kann es vorkommen, dass zwei verschiedene trackfähige Terrains direkt aneinanderstoßen. In diesem Fall wird zunächst der alte Track wie gehabt beendet und der neue mit einem neuen Startmodus angelegt. Die sich ergebende Lücke ist absolut wünschenswert.