Hmm hmm
Vllt sollte ich ein bisschen mehr ausholen:
Vereinfacht gesagt schieße ich für einige Pixel auf dem Bildschirm einen Strahl in den Raum. Das geht mit dem Bresenham sehr einfach und vor allen schnell, ich verlängere den Vektor
Pixelposition minus Auge (natürlich in 3D, also ein Punkt auf der vorderen Ebene des View-Frustrums) in die Ferne und erhalte so meinen Endpunkt, zu dem ich dann vom Auge aus hinlaufe. Soweit sogut. Wenn ich aber beim hinlaufen merke, dass "über" mir ein Voxel ist (hier der Rote Voxel über dem Violetten), dann möchte ich die Projizierte Position auf dem Bildschirm berechnen (fürs Verständnis reicht erstmal eine 2D-betrachtung), in dem Fall wäre das ein Strich (genau genommen suche ich das
unterste Pixel dieser Linie).
Da der Bildschirm nicht notwendigerweise parallel zur Y-Achse (bei mir oben) ist, ist das ganze etwas schwieriger. Mein erster Ansatz war, den Bildschirm Stück für Stück entlangzulaufen (und dazu jeweils die neue Endposition in der Ferne zu berechnen), den Bresenham schonmal mit der entsprechenden X-koordinate zu initialisieren und dann solange nach oben zu laufen bis der Fehler wieder im Rahmen liegt. Das ist natürlich sehr langsam, daher suche ich jetzt was schnelleres