Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Suchergebnisse

Suchergebnisse 1-3 von insgesamt 3.

Werbeanzeige

06.01.2005, 12:27

Forenbeitrag von: »rFaust«

Problem mit Picking

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...

04.01.2005, 17:42

Forenbeitrag von: »rFaust«

Problem mit Picking

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...

03.01.2005, 17:06

Forenbeitrag von: »rFaust«

Problem mit Picking

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...