>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Phong illumination model <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< V každém pokecu o phongu najdete asi takovou hlášku : But you must distinguish between Phong shading model and Phong illumination model. Já si myslim, že je to zbytečný a navíc když se kouknete na vzorec, je absolutně jasný, co je co. Co je podle mě důležitý, je to, že PIM nedává BARVY (tj. složky R,G,B nebo číslo barvy v DAC) ale INTENZITY. Nejjednodušší cesta, jak PIM využít, je vypočítat si do pole o rozsahu 0-90 intenzity pro jednotlivé úhly, a pak, když nám z Phong shading modelu vyjde úhel mezi pseudonormálovým vektorem a vektorem světla, tak nepoužijeme tuhle hodnotu k výpočtu barvy (jako u Gourauda), ale odkážeme se pomocí ní do pole intenzit a použijeme hodnoty z tohodle pole. Pozor na jednu věc - intenzita v žádném případě nemusí být od 0-1 jako cos(úhel), takže je možno hravě překročit limit barev, které jsme tělesu vlastně chtěli dát. Pokud máte poté lineárně nastavenou paletu, není problém podle intenzity přepočítat lineární barvu na Phongovou. Vzoreček uvedu s anglickými termíny protože nevim přesné překlady a nechci to mrvit. Intenzita = Iambient + Idiffuse + Ispecular A teď vysvětlení : Iambient - intenzita bodu, na který světlo nedopadá přímo Idiffuse - intenzita objektu jako taková Ispecular - intenzita bodu na který přímo dopadá světlo Vzorec se dá přepsat I = specular + diffuse*cos(x) + specular*cos^shiness (x) (to poslední je opravdu mocnina - jako třeba cosn(x) ... jeste slovy - pro jistotu: kosinus umocnen na shiness z (x) :-) Co znamenaj ty všechny parametry ? • x je úhel pod kterým světlo dopadá(x má tedy rozsah od 0 do 90) • shiness je stupeň "blyštivosti" objektu - jde prostě o to, jak hodně bude světlo soustředěné, jestliže dopadá na objekt přímo. výheň