Es geht darum, den Schnitt von Dreieck und Strahl zu bestimmen. Der Algorithmus bietet die Möglichkeit des Cullings. Es funktioniert alles wunderbar, das einzige Problem ist, dass das Culling "falsch" herum ist. Auf den Grafiken sieht man, dass die Dreiecke dort entgegen den Uhrzeigersinn angegeben sind, wie es durchaus üblich ist. Wenn ich jetzt allerdings diesen Algorithmus nachvollziehe, stelle ich fest, dass gerade diese Dreiecke rausfallen.
Nehmen wir mal ein einfaches Dreieck:
Code:
2 + / \ e2 / \ / \ 0+---------+ 1 e1
Nehmen wir an, e1 sei (1,0,0) und e2 sei (1,1,0). Weiterhin sei die Richtung des Strahls dir = (0,0,1). Dann ist pvec = dir x e2 = (-1, 1, 0). Daraus folgt, dass det = e1 * pvec = -1
Da -1 aber immer kleiner ist als epsilon (0<=epsilon<<1), fällt dieses Dreieck raus. Nun lässt sich leicht überlegen, dass wenn man die Reihenfolge vertauscht (sprich Angaben im Uhrzeigersinn), alles tadellos funktioniert.
Wo liegt nun der Fehler? Habe ich eine falsche Annahme gemacht, oder ist bei denen Vorn anders definiert?
Auf den Grafiken in dem Paper ist ein Links-händiges Koordinatensystem dargestellt, wie ich es auch verwende. Ich könnte natürlich einfach v1 und v2 vertauschen, aber das ist ja nicht Sinn der Sache, denn eigentlich soll es nämlich genau so gehen.
Mitglieder in diesem Forum: 0 Mitglieder und 7 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.