Raytracer



  • Mein Raytracer gibt immer falsche Pixels aus.

    SELECT * FROM t_pixels WHERE x*dx+y*dy+z*dz-px*dx-py*dy-pz*dz < epsilon

    wobei dx dy dz die Richtung ist
    px py pz die start-pos vom Strahl
    und epsilon eben ein Epsilon-wert für die "Körnung"!

    Dummerweiße ist jeder 2. oder 3. Pixel an falscher Stelle!!
    klar könnte ich mit einem Filter drüber jagen aber das ist ja nicht Sinn der Sache und auch sehr langsam

    weiß einer rat?



  • *bastelt die Bedingung um*

    x*d-p*d<e
    (x-p)*d<e

    Das sieht für mich nach einer Ebene (bzw. Halbraum) senkrecht auf deinem Richtungsvektor aus - liege ich damit richtig?

    Eventuell solltest du den Betrag verwenden, um eine Raumschicht der Dicke epsilon um den Nullpunkt zu bestimmen:

    ... WHERE abs(x*dx+y*dy+z*dz-px*dx-py*dy-pz*dz) < epsilon
    

Anmelden zum Antworten