Suchergebnisse
Suchergebnisse 1-3 von insgesamt 3.
Danke für alle Antworten, wir konnte den Fehler dadurch endlich lokalisieren. Eigentlich waren es mehrere Fehler, der entscheidende lag hier: C-/C++-Quelltext 1 2 vS.x = ( ((nX*2.0f) / tbDirect3D::GetScreenSize().x)-1.0f) / mProjection.m11; vS.y = ( ((nY*2.0f) / tbDirect3D::GetScreenSize().y)-1.0f) / mProjection.m22; Durch das fehlende Minuszeichen vor der Klammer der zweiten Zeile war die Y-Achse natürlich invertiert. Weitere Probleme waren die ungünstige Testbedingung (nur ein Teilfenster eine...
Ich habe einige neue Erkenntnisse gewonnen. Der Fehler hängt vermutlich mit der Invertierung der Viewmatrix zusammen, auch wenn ich das nicht beschwören kann. Da die Abweichung zwischen Markierung und tatsächlichem Klick desto größer wird, je weiter man sich vom Ursprung entfernt und Y außerdem noch invertiert ist, vermute ich den Fehler in diesen Zeilen: C-/C++-Quelltext 1 2 3 (*vDir).x = (vS.x*mInv.m11)+(vS.y*mInv.m21)+(vS.z*mInv.m31); (*vDir).y = (vS.x*mInv.m12)+(vS.y*mInv.m22)+(vS.z*mInv.m32...
Hallo, wir haben uns damit auseinandergesetzt, ein Picking für einen 3D-Editor zu realisieren. Wir haben uns dabei an Stefan Zerbsts Variante orientiert. Ansonsten liegt unserem Programm die TriBase-Engine zugrunde. Das grundlegende Vorgehen ist folgendes: Als erstes werden die Mauskoordinaten bestimmt, die Funktion Maus::Weltstrahl(int nX, int nY,tbVector3 *vOrig, tbVector3 *vDir) erzeugt damit mit Hilfe der View- und der Projektionsmatrix einen Richtungsvektor, der von der Position des Betrach...