Modeller, mehrere Polygone markieren



  • Winkel würde ich gerne aus dem Spiel lassen 🙂
    Ich muss ja eigentlich nur wissen wie man überprüft, ob ein Punkt innerhalb einer Pyramide liegt, von der ich alle 5 Punkte habe...Leider bin ich noch immer nicht in der Kollegstufe wo man bei uns Raumgemotrie durchnimmt 😞



  • So ganz ohne winkel wirds wohl nicht gehen.
    Was du aber tun könntest wäre dir zu merken, wo ein Punkt in der 2D-Ansicht ist und dann einfach mit nem Rahmenvergleich (xa<px<xb)(ya<py<yb) arbeiten, kostet aber RAM..

    Hab da grade was gefunden - vielleicht hilft das
    http://www.matheraum.de/read?t=15980&v=t



  • Stimmt...das habe ich mir auch schon gedacht...ich denke ich werde es jetzt wohl so machen. Nur weiß ich nicht wie ich 3D Koordinaten + allen Matrizen in die Ebene umrechne...eine Formel für 2D->3D habe ich...aber leider weiß ich nicht genau wie man diese umkehrt...DirectX bietet soweit ich weiß ebenfalls eine Funktion für 3D->2D, somit wohl auch für 2D->3D...kennt jemand den Namen oder die Formel? Danke!

    Kevin



  • hmm.. wobei mir einfällt, dass man vielleicht auch einfach keine Pyramide sondern 2 Parallelogramme (die zusammen wie Pfosten auf dem Rechteckboden stehen)nehmen könnte.
    dann muss man nur noch sehen, ob der Punkt innerhalb der Parallelogramme liegt..



  • Wie sollten die Parallelogramme aussehen? Kanns mir gerade nicht vorstellen.....habe jetzt aber irgendwie Gefallen an der 2D Methode gefunden...jetzt brauch ich nur noch die Umrechnungsfunktion 🙂



  • In DX8 hieß es D3DXVec3Project
    in DX9 ists Vector3.Project



  • Edit: Stimmt - meinte Parallele Strahlen, keine parallelogramme..

    also.
    Du nimmst deinen Blickwinkel auf die ganze Szene als Grundlage. Die 4 Eckpunkte sind nun nichts welter als Parallelverschiebungen hiervon.
    nun nimmst du die beiden übereinander liegenden strahlen und schaust, ob ein Punkt zwischen beiden Vektoren liegt. Anschließend nimmst du die Nebeneinander liegenden Strahlen und tust das Gleiche. Du musst allerdings beachten, dass du auch den up-Vektor der Kamera einberechnest.

    Dadurch kommst du nur mit Vektorrechnung klar und brauchst theoretisch nicht wirklich einen Winkel berechnen..



  • D3DXVec3Project....mal ausprobieren



  • Illuminator war wohl schneller 🙂
    Ich probier das jetzt erstmal mit der 2D-Methode!



  • ok mit D3DXVec3Project funktionierts perfekt...danke für den Tipp!


Anmelden zum Antworten