ich brauch grad mal einen kleinen denkanstoß.. ich habe ein Mesh aus Polygonen und deren UVs.
Die polygone überlappen sich im UV Layout nicht, so das jedes UV eindeutig zu einem Polygon gehört.
Ich möchte jetzt wissen, an welcher stelle in Weltkoordinaten (X, Y, Z) das Fragment an UV 0.3, 0.4 ist.
Gibt es da irgendeinen ganz tollen, schnellen algorithmus für?
Im moment gehe ich in ner for-schleife jedes Polygon durch und schaue via PtInPoly function erstmal nach ob die uv koordinaten innerhalb dieses Polygons liegen.. wenn ja berechne ich dann anhand dessen die Weltkoordinate.
Das klappt soweit wunderbar, ist aber leider verdammt langsam... hat da jemand eine idee wie ich das schneller bekommen könnte?
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Nur so ne fixe Idee: In Shadern arbeitet man ja mit der Variable gl_FragCoord, über diese könnte man die Position des Fragments ja abfragen.
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Ich verstehe Deine Frage nicht, Aya. Wenn die Zuordnung Vertex(X,Y,Z) ==> UV eine eindeutige ist, dann muss es eine Funktion geben:
Es ist nicht ganz so einfach, da Aya ja behauptet, daß sie mehrere faces hat und er möchte also das passende face zu UV finden - sucht also eine Funktion UVs -> FaceNummern. (Ausserdem sind Umkehrfunktionen manchmal nicht so ganz leicht zu berechnen. In der Mathematik genügt häufig freundlicherweise das Wissen, daß das existiert und daß man das Inverse bestimmen könnte ) Ich denke aber der einfachste Trick ist, jedes Face zu nehmen und seine "Nummer" in ein Bitmap zu malen, das die selben Ausmaße hat, wie die Textur. Zu zeichnest Quasi die UV Koordinaten des Face in die Textur zurück und als Füllfarbe nimmst du die nummer des Faces - jedenfalls von der Idee her. Obs tatsächlich super geschickt, ein echtes Bitmap zu nemen und echt zu zeichnen sei dann mal dahingestellt Ansonsten kann man die UV-Koordinaten der Faces auch in Quadtree manier ablegen, allerdings hat die Facekartenvariante den Vorteil, daß du das gesuchte Face in konstanter Zeit findest, während eine Quadtree/BSP-tree-suche auf n*log(n) hinauslaufen wird.
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.