Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Hi,
ich habe 4 Vertexe mit dem ich ein QUAD darstelle. Wie kann ich, wenn ich die Vertex jetzt nicht genau kenne, die Vertexe gegen den Uhrzeiger sortieren, damit die Texturdarstellung klappt. Im 2D Raum bekomme ich es noch hin, aber wie wird die Tiefe mit in diese Betrachtung einbezogen?
macht die tiefe denn da überhaupt einen unterschied? durch die tiefe werden die polygone ja nicht gestürzt... Sofern du nicht über richtige 3D Modelle redest, solltest du keine Probleme bekommen, du musst einfach im Camera Space die z-Koordinate ignorieren, oder irre ich?
Sind die Vertices in der Reihenfolge A-B-C-D und du möchtest die Orienierung umkehren (weil z.B. das Culling grad verkehrt läuft), sortierst du sie halt um nach D-C-B-A und du bist fertig. Ob 2D oder 3D macht dabei keinen unterschied, Faceculling funktioniert ja gerade deswegen, weil Vorderseiten per Definition (standardmäßig) gegen den Uhrzeigersinn, Rückseiten im Uhrzeigersinn vorliegen. Nummerier mal die Ecken eines Blattes, dann dreh es um - siehst du ?
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Auf die Idee im Editor bin schon gekommen. Aber was mache wenn der Anwender BADC angibt? Ich möchte dann automatisch die richtige Sortierung vornehmen.
Ah, jetzt verstehe ich das Problem, du willst Schnittpunkte in einem Editor zu einem Quad verbinden: Als erstes ist sicherzustellen, dass die Vertices tatsächlich koplanar sind (auf einer Ebene liegen) - dazu rechnest du die Ebenengleichung mit den ersten drei Schnittpunkten aus, wenn du den vierten einsetzt, sollte ein Wert in der Nähe von Null herauskommen.
Das war der einfache Teil, jetzt musst du sicherstellen, dass sich 1) die Kanten des Quads nicht überschneiden und 2) das Quad darf auch nicht konkav sein. Prüfung 2) langt aus, da sich dann die Kanten auch nicht überschneiden können - am besten gehst du sämtliche Kombinationen der Vertices durch und und überprüfst, ob der Winkel zwischen jeweils zwei Kanten 180 Grad nicht überschreitet - hast du eine gefunden
Um einheitliche Vorder- oder Rückseiten zu erhalten, stellst du noch sicher, dass die z-Komponente des Normalvektors der Fläche positiv(bzw. negativ) ist (sollte das nicht der Fall sein, drehst du halt die Reihenfolge um), die Fläche also zu dir oder von dir weg schaut.
Wenn du willst, kann ich dir die genauen Algorithmen raussuchen - du findest aber garantiert im Internet genügend Unterlagen dazu.
... hat schon seinen Grund, warum die meisten Engines auf Dreiecke optimiert sind .
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Hi Mars,
danke für Info. Auf die Idee mit der Überschneidung der 2 Geraden, durch AB und CD definiert, bin ich nicht gekommen.
Das die meisten Engine Triangles verwenden ist mir schon klar, aber ich fange mit dem einfachem an, in diesem Fall halt QUADS, und arbeite mich langsam vor.
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.