KLONIRANJE
IZRAZA LICA - POSTUPAK |
CILINDRIČNA PROJEKCIJA Nakon deformacije radij-funkcijama izvorni model predstavlja relativno dobru aproksimaciju ciljnog modela. Još bolju aproksimaciju dobiti ćemo cilindričnom projekcijom izvornog na ciljni model. Tim postupkom sve točke izvornog modela nalaziti će se na površini koju zatvaraju točke ciljnog modela. Za središte projekcije uzima se okomita linija kroz centroid izvornog modela glave. Zatim se kroz svaku točku izvornog modela provlači linija okomita na to središte projekcije te se pronalazi trokut u ciljnom modelu koji ta linija siječe. Ukoliko se linija siječe sa više trokuta, zbog jednostavnosti uzima se prvi presjek od središta. Iako bi ovo rješenje moglo uzrokovati potencijalne probleme, na nizu primjera u praksi to se ne primjećuje. Jedan od razloga za to mogao bi biti taj što su pomaci za sve presječene trokute slični zbog njihove blizine. Pronađeni presjek postati će sada nova točka izvornog modela, koja zamijenjuje staru točku kroz koju je provučena linija okomita na središte projekcije.
Uzevši u obzir oznake prikazane na slici, jednadžba linije koja prolazi kroz centar projekcije i kroz točku izvornog modela je: Jednadžba površine koja sadrži trokut iz ciljnog modela je: Uvrštavanjem te dvije jednadžbe i rješavanjem za t dobivamo: Presjek se nakon toga dobiva iz prve jednadžbe uvrštavanjem izračunatog parametra t. Time smo dobili presjek linije i površine na kojoj se nalazi trokut. Da bi provjerili da li postoji presjek linije i samog trokuta izračunat ćemo baricentrične koordinate (t1, t2, t3) presjeka u odnosu na točke trokuta ciljnog modela. Ukoliko dobijemo da vrijedi 0 <= t1, t2, t3 <= 1, točka se nalazi unutar trokuta. U stvarnosti, zbog ograničenja preciznosti prikaza brojeva na računalu oduzimamo 0.005 od nule, odnosno dodajemo 0.005 jedinici. Na gornjoj slici prikazan je rezultat cilindrične projekcije izvornog na ciljni model. Plave točke predstavljaju izvorni model prije projekcije, crvene su točke izvornog modela nakon projekcije, a crne su točke ciljnog modela, koje se nisu mijenjale. Kao što vidimo, nakon cilindrične projekcije sve točke izvornog modela nalaze se unutar površine koju zatvaraju točke ciljnog modela. U daljnjem postupku kloniranja izraza lica vektori pomaka točaka izvornog modela prebacuju se na točke ciljnog modela linearnom interpolacijom s baricentričnim koordinatama. Da bi to bilo moguće, prvo je potrebno obaviti još jednom cilindričnu projekciju, ovaj put ciljnog na izvorni model. Obaviti ćemo isti proces koji je opisan prije u poglavlju, samo ćemo zamijeniti izvorni i ciljni model.
|