Das hatte bisher eigentlich immer geklappt, nur... bei manchen Triangles macht das ding irgendwie fehler, bzw liefern ein true zurück obwohl es false sein sollte..
z.B. bei dem hier:
Code:
CIVertexf vert0(240, 0, -555.375);
CIVertexf vert1(64, 0, -592);
CIVertexf vert2(240, 0, -517.375);
CIVertexf rayOrigin(130.333, -200, -576.244);
CIVertexf rayDirection(0, -1, 0);
Hat irgendwer eine idee woran das liegt..? Bzw.. wie muß man ihn ändern damit es geht?
Aya~
PS: Oder ich hab irgendwo nen dummen fehler beim abtippen gemacht.. aber eigentlich hab ich das ganze grad 10x überprüft :/
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich denke du hast beim abtippen ein Fehler gemacht oder das Backfaceculling Define aktive, wenn dann die vektoren falsch übergeben sind, würde es auch fehlschlagen, wenn es das Triangle trift.
Ich hab das mal mit einen XNA portierung für C# verglichenm und der Code ist gleich.
http://www.ziggyware.com/readarticle.php?article_id=78 Leider ist der Orginalcode von dem Artikel nicht mehr auf dem Server.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Ich denke du hast beim abtippen ein Fehler gemacht oder das Backfaceculling Define aktive, wenn dann die vektoren falsch übergeben sind, würde es auch fehlschlagen, wenn es das Triangle trift. Ich hab das mal mit einen XNA portierung für C# verglichenm und der Code ist gleich. http://www.ziggyware.com/readarticle.php?article_id=78 Leider ist der Orginalcode von dem Artikel nicht mehr auf dem Server.
Hast du es denn mal mit dem Triangle ausprobiert das ich oben geschrieben habe?
Es ist egal ob mit oder ohne Backfaceculling.. es kommt immer ein treffer raus, obwohl es nicht trifft.
Wenn das bei XNA genauso aussieht der code heißt das nicht zwingend das es funktioniert..
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich hoffe, doch wenn wer es portiert, dass er es auch verwendet. Zugegeben ein bischen Naiv aber ich hoffe trotzdem darauf.
Leider bin ich den ganzen Tag über nicht zuhause und deswegen konnte ich es selber noch nicht ausprobieren aber ich bin bald Zuhause, dann guck ich mir das mal im Debugger an.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich bin zwar noch nicht zuhause aber ich hab das mal Schriftlich durchgearbeitet und bei mir bricht er bei deinen werten bei der Determinantenprüfung ab, da diese 0 ergibt.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Ich bin zwar noch nicht zuhause aber ich hab das mal Schriftlich durchgearbeitet und bei mir bricht er bei deinen werten bei der Determinantenprüfung ab, da diese 0 ergibt.
Hast du es mit dem algorithmus von dem PDF das ich oben verlinkt habe durchgerechnet?
Oder mit dem den du da verlinkt hast..?
Der den du da hast den hatte ich vor meinem post schon ausprobiert und der geht aufjedenfall, nur ich wollte halt diesen anderen da haben grade weil der auch backface culling unterstüzt.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich hab die PDF, die du gelinkt hattest genommen.
Rechenfehler meinerseits sind natürlich nicht ausgeschlossen aber an deiner stelle würde ich mal mit dem debugger die werte durch arbeiten und gucken ob nicht vieleicht ein fehler mit den pointer gemacht hast. Ich würde die Funktion eh umschreiben, diese ist nicht gerade das was man performant nennt. Referenzen, ein paar const rein, damit der compiler diese als nur lesen erkennt und den code besser optimieren kann, die rechenoperationen auf die eigene mathebiblio umstellen und 4 statt 3 Komponentenvektoren verwenden aber da erzähle ich dir ja nichts neues.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
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.