Notes 2, Ray Tracing, 23 Nov 95 (bugfixed 26 Apr 96) ****************************************************** Figyelem, a level tartalmat mashol publikalni reszben vagy egeszben az engedelyem nelkul szigoruan tilos !!! ****************************************************** ,,,,,,,,,,,,,,,,,,,,, METSZESPONT VIZSGALAT ''''''''''''''''''''' 1. ESETEK --------- a/ Az elso talalat keresesekor. Ilyenkor a vektoroknak a kezdopontjaik azonosak: a szem helyvektora. Ezert minden objektumhoz egyes adatok meg az adott kep trace-lese elott kiszamolhatok. b/ Az arnyek vizsgalatkor: blokkolja-e valamelyik (nem atereszto) targy a feny utjat. Ilyenkor a metszespontra nincs szuksegunk csak az a kerdes, hogy letezik-e. c/ A tukrozott vagy tort (ateresztett) sugar vizsgalatanal. Ilyenkor a kezdopont nem azonos, tehat egy altalanosabb rutin kell, mint az a/ pontnal. 2. TESTEK ADATAI ---------------- a/ bejovo adatok b/ az osszes fazis elott szamolt adatok c/ egyes fazisok elott szamolt adatok d/ fazisok kozben szamolt adatok 3. TESTEK --------- 3.1 sugar (felegyenes) 3.1.1 elmelet _ - kiindulo pontja: P = (Px,Py,Pz) _ - iranya: D = (Dx,Dy,Dz) <-- egysegnyi vektor - egyenlete: (x,y,z) = (Px + t * Dx, Py + t * Dy, Pz + t * Dz), ha t < 0 3.1.2 adatok _______ 1.a ___ 1.b ___ 1.c ___ 2.a ___ 2.b ___ 2.c ___ 2.d _ _ -------------------------------------------------------- P : + + + _ -------------------------------------------------------- D : + + + + -------------------------------------------------------- t : + + + _ -------------------------------------------------------- M : + + + 3.1.3 szamolas _ _ _ M = P + t * D, ha t < 0 azaz _ M = (Px + t * Dx, Py + t * Dy, Pz + t * Dz), ha t < 0 3.2 sik 3.2.1 elmelet _ - normal vektora: N = (A,B,C) _ - egy pontja: Po = (Xo,Yo,Zo) - egyenlete: A * x + B * y + C * z + D = 0 3.2.2 adatok _______ 1.a ___ 1.b ___ 1.c ___ 2.a ___ 2.b ___ 2.c ___ 2.d _ _ -------------------------------------------------------- N : + + + + _ -------------------------------------------------------- Po : + -------------------------------------------------------- D : + + + -------------------------------------------------------- V : + + -------------------------------------------------------- d : + + + + -------------------------------------------------------- t : + + + + 3.2.3 szamolas D = - (A * Xo + B * Yo + C * Zo) d = A * Dx + B * Dy + C * Dz A * Px + B * Py + C * Pz + D t = - ---------------------------- , ha d <> 0 d V = - (A * Px + B * Py + C * Pz + D) V t = - , ha d <> 0 d 3.3 gomb 3.3.1 elmelet _ - kozeppontja: C = (Cx,Cy,Cz) - sugara: r - egyenlete: |(Cx - x,Cy - y,Cz - z)| ^ 2 = r ^ 2 <-- r * r 3.3.2 adatok _______ 1.a ___ 1.b ___ 1.c ___ 2.a ___ 2.b ___ 2.c ___ 2.d _ _ -------------------------------------------------------- C : + + + -------------------------------------------------------- r : + -------------------------------------------------------- r2 : + + + _ -------------------------------------------------------- V : + + + + + -------------------------------------------------------- V2 : + + -------------------------------------------------------- b : + + + + -------------------------------------------------------- d : + + + + -------------------------------------------------------- t : + + + 3.3.3 szamolas r2 = r ^ 2 _ _ _ V = C - P _ _ _ _ b = V . D <-- V dot D _ _ d = b ^ 2 - V . V + r2 ___ t = b +/- -/ d ' , ha d <= 0 _ _ V2 = - V . V + r2 d = b ^ 2 + V2 ,,,,,,,,,,,,,,,, ;TomCat/Abaddon; ;KaproncaiTamas; ;tomcat@szif.hu; ''''''''''''''''