Ein Dreieck in die Form eines anderen verzerren
-
Hallo,
ich habe zwei rasterisierte Dreiecke (d1, d2). Jedes Dreieck besitzt eine Textur, bzw. die Pixel der Dreiecke haben Farbwerte. Mein Ziel ist es jetzt die Dreiecke uebereinander zu legen. Das Problem hierbei ist, dass d1 und d2 nicht dieselbe Form besitzen. Ich weiss aber, welcher Vertex von d1 zu welchem in d2 gehoert.
Ich frage mich nun, wie ich d2 verzerren kann, sodass es auf d1 passt und wie ich die Farbwerte verzerren soll?!
Danke fuer Tipps!
-
gib den vertices von d2 einfach die selbe coordinate wie d1.
-
Erklaer' erstmal was Du ueberhaupt erreichen willst.
Die zwei Dreiecke werden doch nicht zum Spass unterschiedliche Koordinaten haben?
Ich vermute eher, dass Du wissen willst, welche Texturkoordinaten das eine Dreieck an den Eckpunkten des anderen haette?
-
Hi.. Okay sorry mal etwas genauer.
Ich habe zwei Dreiecke mit Farbwerten (jeweils ein Texturdreieck aus 2 verschiedenen Texturen). Diese haben verschiedene Formen (Also keine 1:1 Zuordung vorhanden). Als Bezug zueinander habe ich die Zuordung der Eckpunkte zwischen den Dreiecken (z.B. Eckpunkt e1 mit (x,y) von Dreieck d1 gehoert zu Eckpunkt e2 mit (x,y) von Dreieck d2. Wobei (x,y) von e1 nicht gleich dem von e2 ist.. hoffe das ist klar?!). Mein Ziel ist es nun die beiden Dreiecke zu mischen. Also die Farbwerte zu mitteln. Jetzt habe ich folgenden Link gefunden: http://www.gamedev.net/reference/articles/article852.asp . Eigentlich waere das ja so aehnlich. Also man hat ein Dreieck und will dieses Einfaerben (Einfaerben oder mitteln macht kein grossen Unterschied). Das Problem was ich zur Zeit habe, wie ich das eine Dreieck richtig deformiere um es an das zweite Dreieck anzupassen...!
-
Soweit war das schon klar, aber *warum* willst das?
-
wenn du nach texturemapping (indeinem fall eventuell auch nur affine texture mapping) suchst, solltest du finden was du brauchst.
an sich willst du ja nur fuer einene gegebenen punkt auf dem einen dreieck den dazugehoerigen punkt auf dem anderen ausrechnen. dazu kann man z.b. [url=http://de.wikipedia.org/wiki/Baryzentrische_Koordinaten]baryzentrische koordinaten[/quote] benutzen.
du rechnest also fuer d1 die bk aus und anhand deren berechnest du auf dem zweiten wieder die 'richtige' 2d position.