Aus dem Projekt ist nichts geworden, aber der Konverter funktioniert teilweise. Er findet sich nun unter https://github.com/harbaum/X3dToSvg. Dort ist auch ein Beispielergebnis als SVG oder PDF zu sehen.
Zwei Dinge machen mich noch nicht glücklich:
- Für die Tiefensortierung benutze ich intern einen 2D-Z-Buffer. Dessen Auflösung ist natürlich nie hoch genug und das Ergebnis prinzipbedingt nie perfekt
- Die Tiefensortierung klappt nicht immer. Zur Zeit sotiere ich die Tiefe nach der Entfernung zum Mittelpunkt eines Polygons. Das ist natürlich nicht immer korrekt und man sieht im Beispiel einige Stellen, wo Polygone von weiter hinten zu weit im Vordergrund liegen.
Was mir noch fehlt sind zwei Algorithmen:
- Einer, der Polygone nach Sichtbarkeit von einem Punkt sortiert. Das löse ich zur Zeit, indem ich nach der Entfernung zum Mittelpunkt der Polygone sortuiere. Das ist aber nicht ganz korrekt
- Einer, der feststellt, ob ein Polygon komplett von allen davor liegenen verdeckt wird. Das mache ich z.Zt, indem ich in einen 2D-Z-Puffer rendere. Aber das skaliert leider nicht perfekt