Textur-Sortierung sinnvoll?



  • Ich habe gerade angefangen eine Klasse Namens "Renderlist" in meinem Framework ein zu basteln. Diese soll dann den zweck haben, dass alles bevor es gerendert wird, zuerst in dieses Objekt kommt. Wenn alles was Gerendert werden soll in dieser Klasse ist, soll sie nach Texturen, Shader, etc ... sortieren.

    Nun stelle ich dies jedoch sehr in frage, denn wenn man beispielsweise 500 Objekte zum rendern in dieser Klasse hat, wobei 100 verschiedene Texturen auf den Objekten verteilt sind, muss die Liste 100 mal durchlaufen werden, woraus 50000 überprüfungen raus kommen. Ist es denn nicht schneller einfach alles ohne sortierung zu rendern?



  • Es gibt Alternativen zu Bubble-Sort...



  • Zum Sortieren der kompletten Liste könntest du z.B. Quicksort benutzen. Das ist einer der schnellsten Algorithmen für die Sortierung. Aber wenn die Liste einmal sortiert ist, musst du doch nur noch das neue Element hinzufügen. Dort ist es nicht notwendig, die Liste erneut zu sortieren. Hier würden sich dann das "Insertion-Sort"-Verfahren anbieten.

    MfG, Jochen



  • Nunja, die Liste verändert sich ja mit eigentlich jeder neuen Frame. Deswegen würde ich diese einfach bei jeder neuen Frame auch komplett neu aufbauen. Oder meinst du, das wenn ich jedesmal ein neues Objekt hinzufüge, dass es dann zu der Liste hinzugefügt/Sortiert wird, und dann immer wieder, bis die Liste voll ist?



  • Wie stark sind denn die Änderungen in jedem Frame? Vielleicht könntest du auch nur einen Teil der Elemente aus der Liste herausnehmen und irgendwie anders einsortieren. Sodass der große (sortierte) Rest unangetastet bleibt. Wenn du allerdings immer die ganze Liste in jedem Frame neu sortieren musst, liegt vielleicht ein Design-Fehler vor.

    Das was ich meinte war folgendes: Wenn die Liste schon sortiert ist, ist ja alles bestens. Wenn nun ein neues zu renderndes Objekt hinzugefügt werden muss, muss man ja nicht immer die ganze Liste neu soriteren, sondern das neue Objekt einfach an der passenden Stelle einfügen. Wenn die Liste allerdings immer neu sortiert werden muss, ist diese Methode ja nicht zu gebrauchen.

    MfG, Jochen



  • Nunja, es handelt sich dabei um einen kleinen Shooter. Der Spieler muss sich nur einmal umdrehen, und es wird schon eine ganz andere Szene gerendert, da das alte nun durch das Frustum-Culling wegfällt.


Anmelden zum Antworten