Frage zu Collision Detection Primitives



  • @dot

    Schonmal dran gedacht nicht alle Ebenen in den Worldspace sondern nur die Ebenen vom einem Modell in den Objectspace des andren zu transformieren?

    Habe ich, allerdings bin ich zum Schluss gekommen, dass das Erstellen einer Matrix Inversen plus eine Matrizenmultiplikation am Ende langsamer ist als 2 Matrizenmultiplikationen. Jedenfalls mit SSE 😉



  • Ich würde meinen das hängt extrem stark davon ab wieviele Ebenen du hast 😉



  • Ishildur schrieb:

    dass das Erstellen einer Matrix Inversen plus eine Matrizenmultiplikation am Ende langsamer ist als 2 Matrizenmultiplikationen.

    Die Inverse hat man doch meisstens schon.
    Wenn Du beispielsweise die Positionen der Lichtquellen in den Objektraum bringst spart Dir das *pro Normale* eine Matrixmultiplikation...
    Wenn Deine Matrix orthonormal ist, braucht's sogar nur die Transponierte.



  • @dot
    Ich kann dir gerade nicht folgen, wie wieso hängt das von der Anzahl ab?

    @hellihjb
    Ich beleuchte mit Normalmapping im Objektspace, da muss ich ohnehin eine Matrixmultiplikation pro Pixel machen. Sowie eine Transformation der Basisvektoren des Tangenspace vom Model in den Worldspace.



  • Ishildur schrieb:

    @dot
    Ich kann dir gerade nicht folgen, wie wieso hängt das von der Anzahl ab?

    Je mehr Ebenen desto mehr Matritzenmultiplikationen sparst du dir da du dann ja nur die Ebenen von einem der beiden Objekte transformieren musst...

    Ishildur schrieb:

    Ich beleuchte mit Normalmapping im Objektspace, da muss ich ohnehin eine Matrixmultiplikation pro Pixel machen. Sowie eine Transformation der Basisvektoren des Tangenspace vom Model in den Worldspace.

    Du meinst wohl Normalmapping im Worldspace!?



  • @dot

    Je mehr Ebenen desto mehr Matritzenmultiplikationen sparst du dir da du dann ja nur die Ebenen von einem der beiden Objekte transformieren musst...

    Ja schon, aber um so mehr Matrizeninversionen muss ich berechnen. Die Frage beschränkt sich IMHO auf "Was ist schneller, 1x Matrizenmultiplikation od 1x Matrizeninversion?

    Du meinst wohl Normalmapping im Worldspace!?

    Hehe, ja natürlich. Ich habe übrigens auch die Beleuchtung im Tangentspace ausprobiert, aber so ab. ca. 5 dynamischen Lichtern, war plötzlich Worlspace Beleuchtung schneller als Tangentspace, auch wenn überall das Gegenteil steht. Kommt aber halt auch sehr auf die Anzahl Vertices des entsprechenden Modells an und wieviel man vom entsprechenden Objekt gerade sieht



  • Ishildur schrieb:

    Ja schon, aber um so mehr Matrizeninversionen muss ich berechnen. Die Frage beschränkt sich IMHO auf "Was ist schneller, 1x Matrizenmultiplikation od 1x Matrizeninversion?

    Huh? Du brauchst doch nur eine Matritzeninversion pro Objekt und die Multiplikation brauchst du so oder so!? Und wie hellihjb schon sagte brauchst du die inverse Object to World Matrix sehr wahrscheinlich sowieso auch für andere Dinge.
    Die Frage ist also was ist schneller:

    1. Alle Ebenen von Objekt1 -> Worldspace + Alle Ebenen von Objekt2 -> Worldspace

    oder

    1. (1x Matritzeninversion) + Alle Ebenen von Objekt1 -> Objekt2


  • Huh? Du brauchst doch nur eine Matritzeninversion pro Objekt

    Ah LORD, jtzt verstehe ich was du meinst, natürlich! 😃



  • Ich habe noch eine Frage. In dem erwähnten Buch steht zwar so ziemlich alles, was man über die Kollisionserkennung wissen muss, allerdings nur wenn es darum geht, festzustellen, ob eine Kollision stattgefunden hat oder nicht. Ich erweitere gerade auch noch die Physikengine und hierfür benötige ich das Zentrum des Schnittvolumens zweier Proxykörper. Weiss vielleicht jemand von euch, wo ich Literatur zu diesem Thema finden kann?

    Gruss Samuel



  • Ein interessantes Stichwort ist vielleicht "Closest Point Computations"...


Anmelden zum Antworten