Aktuelle Zeit: 15.05.2024, 06:58

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Texture-Koordinate von 3D-Punkt
BeitragVerfasst: 06.02.2010, 23:04 
Offline

Registriert: 01.01.2010, 17:18
Beiträge: 11
Hallo,
ich möchte in meinem kleinem Editor Meshes direkt anpinsel können. Dazu mache ich eine Kollisionsabfrage (von der Maus) auf das Mesh um zu überprüfen, wo ich es anmalen muss.

Leider bekomme ich dazu nur den Kollisions-Punkt im Raum + die 3eck-Koordinaten (leider ohne UV-Koordinaten).

Gibt es nun eine (einfache) möglichkeit die UV-Koordinaten der Texture rauszubekommen?
Oder muss ich über den MeshManipulator jeden Vertex durchgehen, vergleichen, welcher wo ist, die Texturekoordinaten rausziehen und auf umrechnen?

Vielen dank im voraus! :-)
Gruß
Bastian


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Texture-Koordinate von 3D-Punkt
BeitragVerfasst: 07.02.2010, 13:42 
Offline

Registriert: 07.02.2010, 13:30
Beiträge: 2
hi,

ich denke du musst erstmal das Dreieck, oder Polygon herausfinden, dass durch die Maus selektiert wird.

Das geht durch Berechnung des Schnittpunkt zwischen Gerade und Ebene

Die Gerade (Ray) hat die Vektorgleichung Maus3DPosition + t*CameraViewVektor und
die Ebene ist das Dreieck (A + r*AB + s*AC), wobei A,B,C eben 3 Punkte auf dem Dreieck sind.

Nachdem du den Schnittpunkt hast, rechnest du diesen in UV Koordinaten des Dreiecks um.

Ich kenn mich noch nicht so gut mit der Engine aus, das was ich dir gesagt habe ist Software theoretisch nötig.
Die Graka kann viele Schritte selbst.

z.B.
- Herausfinden des Dreiecks durch einen ITriangleSelector,
- den Ray durch ISceneCollisionManager::getRayFromScreenCoordinates()
- Schnittpunkt durch triangle3d Memberfunktion

(Die genauen Namen der Funktionen weiß ich grad nicht aber so in der Art)

Bei der Umrechnung 3D-Welt in lokale UV-Coords weiß ich nicht genau was man da genau machen muss,
denke man muss das Dreieck auf die Z-Achse der Kamera projizieren und dann simpel zwischen 0 und 1 linear interpolieren.

hoffe aber ich konnte dir weiterhelfen.

mfg


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de