Fläche aus 4 oder mehr Punkten in Dreiecke unterteilen
Verfasst: 05.02.2013 01:33
Da ich mich ab jetzt mal ein bischen mit meinem .obj zu .mesh Konverter beschäftigen möchte und mir auch schon ein paar gedanken dazu gemacht habe, ist auch schon das erste Problem aufgetreten.
Da Flächen in .obj-Dateien nicht zwangsweise aus Dreiecken bestehen müssen, was allerdings für .mesh-Dateien nötig ist, müssen vor dem Convertieren zuerst alle Flächen Trianguliert (in Dreiecke unterteilt) werden. Jetzt habe ich mir überlegt, dass man das ja den Konverter übernehmen lassen könnte aber... Genau hier liegt das Problem.
Wenn ich z.B. eine Fläche bestehend aus mehr als 3 Punkten habe, ist das gar nicht so leicht, anhand der Punkte-Koordinaten einen passenden algorythmus zu finden um diese Fläche in mehrere Dreiecke aufzuteilen.
So ein Algorythmus müsste natürlich für jede mögliche Fläche funktionieren.
Ist das überhaupt machbar und wenn ja, hat vieleicht jemand einen Lösungsvorschlag für mein Problem?
Edit:
OK... ich hab mir jetzt ein nettes System überlegt, das auch funktionieren sollte. Dazu muss ich allerdings ein paar kleine überprüfungen vornehmen und dazu fehlt mir irgendwie ein Lösungsansatz.
Für Mein System muss ich prüfen, ob die Kanten der Dreiecke (die ich erstelle) eine Kante oder einen Eckpunkt des Grund-Polygons schneidet, oder ob sich eine Kante der Dreiecke außerhalb des Grundpolygons befindet. Kann man das ermittlen, wenn man vom Grund-Polygon nur 2 Informations-Typen hat? (1. Koordinaten der Eckpunkte / 2. In welcher Reihenfolge ie Eckpunkte miteinander verbunden sind)
Da Flächen in .obj-Dateien nicht zwangsweise aus Dreiecken bestehen müssen, was allerdings für .mesh-Dateien nötig ist, müssen vor dem Convertieren zuerst alle Flächen Trianguliert (in Dreiecke unterteilt) werden. Jetzt habe ich mir überlegt, dass man das ja den Konverter übernehmen lassen könnte aber... Genau hier liegt das Problem.
Wenn ich z.B. eine Fläche bestehend aus mehr als 3 Punkten habe, ist das gar nicht so leicht, anhand der Punkte-Koordinaten einen passenden algorythmus zu finden um diese Fläche in mehrere Dreiecke aufzuteilen.
So ein Algorythmus müsste natürlich für jede mögliche Fläche funktionieren.
Ist das überhaupt machbar und wenn ja, hat vieleicht jemand einen Lösungsvorschlag für mein Problem?
Edit:
OK... ich hab mir jetzt ein nettes System überlegt, das auch funktionieren sollte. Dazu muss ich allerdings ein paar kleine überprüfungen vornehmen und dazu fehlt mir irgendwie ein Lösungsansatz.
Für Mein System muss ich prüfen, ob die Kanten der Dreiecke (die ich erstelle) eine Kante oder einen Eckpunkt des Grund-Polygons schneidet, oder ob sich eine Kante der Dreiecke außerhalb des Grundpolygons befindet. Kann man das ermittlen, wenn man vom Grund-Polygon nur 2 Informations-Typen hat? (1. Koordinaten der Eckpunkte / 2. In welcher Reihenfolge ie Eckpunkte miteinander verbunden sind)