postolka píše:
Tohle je blud
. Smooth nijak neupravuje tvar meshe ani nic nezakrivuje, jedine co smooth dela je uprava normalu (takze vertexy ktere jsou spolecne pro navazujici facy jsou stejne). Bez smoothu ma kazda face vlastni normal (lepe receno kazdy vertex face ma normalu spolecnou pouze pro danou face a nikoliv pro face ktere na ni navazuji).
http://local.wasp.uwa.edu.au/~pbourke/rendering/interpolation/Lepsi odkaz jsem nenasel.
Blud to nie je. Treba len vedieť ako to funguje. Dosť to súvisí s osvetlením..
To akú "svetlosť" bude mať každý face vypočítame jednoducho, vypočítame pod akým uhlom naň dopadne svetlo (čím vačší uhol tým menej fotónov dopadne na dané miesto). Toto spravíme najrýchlejšie s normálovým vektorom facu, akurát keďže ten je na vektor kolmý na face, bude svetlosť najvačšia pri uhle 0° a najmenšia pri 90° a viac. Samozrejme ešte záleží aj na vzdialenosti od svetelného zdroja. Výsledok pre každý vertex sa nakoniec interpoluje na celý face. Toto je Solid model a pracuje perfektne kým nepotrebujeme zaoblený povrch - teda ani to nie je problém ak nie sme obmedzený počtom facov - také výpočtové kapacity ale nemáme tak musíme spraviť nejakú fintu.
Prvé riešenie publikoval v roku 1971 H. Gouraud a síce treba vypočítať normálu pre každý vrchol (čo je síce matematický nezmysel, ale v týchto bodoch chceme predsa aj tak vypočítať ako by svetlo dopadalo keby tam bola malá plocha). Najjednoduchšie váženým priemerom normál a výsledok zase lineárne interpolujeme na celý face.
Pre raytracing sa však viac hodí Phongov model. Je presnejší, lebo z normál vrcholov vypočíta normálu pre každý bod facu a nemusí nič interpolovať.
Normála vypočítaná Phongovým modelom rovnako dobre slúži pri zákone odrazu a lomu svetla používanom v raytraceroch. Je to trochu nepresné, keďže sa lúč odrazí/zalomí pod daným uhlom trochu skôr/neskôr ako by v danej polohe na zakrivenom povrchu mal, pri malých uhloch (<5°, pri malých rendroch aj 2x viac) je to však zanedbateľné.
Neupravuje teda tvar siete, ale správanie sa svetla ako by tam zaoblený povrch bol. To je len formálny rozdiel..