Phongův reflexní model - Phong reflection model
The Phongův reflexní model (také zvaný Osvětlení phong nebo Phong osvětlení) je empirický model z místní osvětlení bodů na a povrch navržený výzkumníkem počítačové grafiky Bui Tuong Phong. v 3D počítačová grafika, je někdy označováno jako "Phong shading", zejména pokud je model používán s metoda interpolace se stejným názvem a v kontextu shadery pixelů nebo na jiných místech, kde lze výpočet osvětlení označit jako „stínování ”.
Dějiny
Model reflexe Phong byl vyvinut společností Bui Tuong Phong na University of Utah, který ji publikoval ve svém Ph.D. disertační práce.[1][2] Byla zveřejněna ve spojení s metodou interpolace výpočtu pro každého jednotlivce pixel který je rastrován z polygonálního modelu povrchu; interpolační technika je známá jako Phong stínování, i když se používá s jiným reflexním modelem než Phongovým. Phongovy metody byly v době jejich zavedení považovány za radikální, ale od té doby se staly de facto základní stínovací metodou pro mnoho aplikací pro vykreslování. Phongovy metody se ukázaly být populární díky jejich obecně efektivnímu využití doby výpočtu na vykreslený pixel.
Popis
Phong reflexe je empirický model místního osvětlení. Popisuje způsob, jakým povrch odráží světlo jako kombinaci difúzní odraz drsných povrchů pomocí zrcadlový odraz lesklých povrchů. Je založen na Phongově neformálním pozorování, že lesklé povrchy mají malou intenzitu zrcadlové zvýraznění, zatímco matné povrchy mají velké zvýraznění, které klesá postupně. Model také obsahuje okolní výraz pro malé množství světla, které je rozptýleno po celé scéně.

Pro každý světelný zdroj ve scéně komponenty a jsou definovány jako intenzity (často jako RGB hodnoty) zrcadlové a difúzní složky světelných zdrojů. Jediný termín ovládá okolní osvětlení; někdy se počítá jako součet příspěvků ze všech světelných zdrojů.
Pro každého materiál ve scéně jsou definovány následující parametry:
- , což je zrcadlová konstanta odrazu, poměr odrazu zrcadlového členu přicházejícího světla,
- , což je difúzní odrazová konstanta, poměr odrazu difuzního členu přicházejícího světla (Lambertova odrazivost ),
- , což je konstanta odrazu okolí, poměr odrazu okolního členu přítomného ve všech bodech vykreslené scény, a
- , což je lesk konstanta pro tento materiál, která je větší pro povrchy, které jsou hladší a zrcadlovější. Když je tato konstanta velká, zrcadlové zvýraznění je malé.

Kromě toho máme
- , který je soubor všech světelných zdrojů,
- , což je směrový vektor z bodu na povrchu směrem ke každému světelnému zdroji ( určuje světelný zdroj),
- , který je normální v tomto bodě na povrchu,
- , což je směr, kterým by se dokonale odrážený paprsek světla vydal z tohoto bodu na povrchu, a
- , což je směr směřující k divákovi (například virtuální kamera).
Pak Phongův reflexní model poskytuje rovnici pro výpočet osvětlení každého povrchového bodu :
kde směrový vektor se počítá jako odraz z na povrchu charakterizovaném normálem povrchu použitím
a klobouky naznačují, že vektory jsou normalizováno. Difúzní člen není ovlivněn směrem diváka (). Zrcadlový výraz je velký pouze v případě, že divák směr) je zarovnán se směrem odrazu . Jejich zarovnání se měří pomocí síla kosinu úhlu mezi nimi. Kosinus úhlu mezi normalizovanými vektory a se rovná jejich Tečkovaný produkt. Když je velký, v případě téměř zrcadlového odrazu bude zrcadlové zvýraznění malé, protože jakýkoli úhel pohledu, který není zarovnaný s odrazem, bude mít kosinus menší než ten, který se rychle zvýší na nulu, když se zvýší na vysoký výkon.
Ačkoli výše uvedená formulace je běžným způsobem prezentace modelu reflexe Phong, každý termín by měl být zahrnut pouze v případě, že bodový produkt termínu je pozitivní. (Kromě toho by měl být zrcadlový člen zahrnut pouze v případě, že bodový součin difuzního členu je kladný.)
Když je barva znázorněna jako RGB hodnot, jak je tomu často v počítačová grafika, tato rovnice je typicky modelována samostatně pro intenzity R, G a B, což umožňuje různé odrazové konstanty a pro různé barevné kanály.
Výpočtově efektivnější úpravy
Při implementaci modelu reflexe Phong existuje řada metod pro aproximaci modelu, spíše než implementace přesných vzorců, které mohou výpočet urychlit; například Blinn – Phongův reflexní model je modifikace Phongova reflexního modelu, která je efektivnější, pokud se s divákem a světelným zdrojem zachází jako v nekonečnu.
Další přiblížení[3] který se zabývá výpočtem umocňování ve zrcadlovém členu je následující: Vzhledem k tomu, že zrcadlový člen by měl být brán v úvahu pouze v případě, že jeho tečkový součin je kladný, lze jej aproximovat jako
kde , a je reálné číslo, které nemusí být celé číslo. Li je vybrána jako síla 2, tj. kde je celé číslo, pak výraz lze efektivněji vypočítat druhou mocninou krát, tj.
Tato aproximace zrcadlového členu platí pro dostatečně velké celé číslo (obvykle bude stačit 4 nebo 8).
Dále hodnota lze aproximovat jako , nebo jako Ten je mnohem méně citlivý na normalizační chyby a než na Phongově bázi je a prakticky nevyžaduje a normalizovat, s výjimkou trojúhelníkových sítí s velmi nízkým rozlišením.
Tato metoda nahrazuje několik násobení za proměnnou umocňování a odstraňuje potřebu přesné normalizace vektoru založené na recipročních odmocninách.
Model odrazu inverzní Phong
Phongův reflexní model v kombinaci s Phong stínování je aproximace stínování objektů v reálném životě. To znamená, že Phongova rovnice může souviset se stínováním viděným v a fotografie s normály povrchu viditelného objektu. Inverzní odkazuje na přání odhadnout normály povrchu vzhledem k vykreslenému obrazu, přirozenému nebo vyrobenému počítačem.
Reflexní model Phong obsahuje mnoho parametrů, například parametr odrazu povrchové difúze (albeda ), které se mohou v rámci objektu lišit. Normály objektu na fotografii lze tedy určit pouze zavedením dalších informací, jako je počet světel, směry světla a parametry odrazu.
Například máme válcovitý objekt, například prst, a chceme vypočítat normál na čáře na objektu. Předpokládáme pouze jedno světlo, žádný zrcadlový odraz a jednotné známé (přibližné) parametry odrazu. Potom můžeme zjednodušit Phongovu rovnici na:
S konstanta rovnající se okolnímu světlu a konstanta rovnající se difúznímu odrazu. Rovnici můžeme přepsat na:
Které lze přepsat na čáru procházející válcovitým objektem jako:
Například pokud je směr světla 45 stupňů nad objektem dostaneme dvě rovnice se dvěma neznámými.
Kvůli mocninám dvou v rovnici existují dvě možná řešení pro normální směr. K definování správného normálního směru je tedy zapotřebí nějaké předchozí informace o geometrii. Normály přímo souvisejí s úhly sklonu čáry na povrchu objektu. Normály tedy umožňují výpočet relativních výšek povrchu čáry na objektu pomocí integrálu čáry, pokud předpokládáme spojitou plochu.
Pokud objekt není válcový, máme tři neznámé normální hodnoty . Potom tyto dvě rovnice stále umožňují normální rotaci kolem vektoru pohledu, takže jsou zapotřebí další omezení z předchozích geometrických informací. Například v rozpoznávání obličejů tato geometrická omezení lze získat pomocí analýza hlavních komponent (PCA) na databázi hloubkových map tváří, která umožňuje pouze povrchová normální řešení, která se nacházejí v normální populaci.[4]
Aplikace
Model odrazu Phong se často používá společně s Phong stínování k zastínění povrchů 3D počítačová grafika software. Kromě toho může být použit také pro jiné účely. Například se používá k modelování odrazu tepelné záření z Pioneer sondy ve snaze vysvětlit Průkopnická anomálie.[5]
Viz také
- Seznam běžných stínovacích algoritmů
- Blinn – Phongův stínovací model - změna modelu reflexe Phong tak, aby obchodovala přesnost s efektivitou výpočtu
- Phong stínování - stínovací technika, která interpoluje spíše normální vektory než intenzity
- Gama korekce
- Funkce distribuce obousměrné odrazivosti - generalizované reflexní modely
- Zrcadlové zvýraznění - další zrcadlové rovnice osvětlení
externí odkazy
Reference
- ^ Bui Tuong Phong, Osvětlení pro počítačem generované obrázky „Communications of ACM 18 (1975), no. 6, 311–317.
- ^ School of Computing University of Utah, http://www.cs.utah.edu/school/history/#phong-ref
- ^ Lyon, Richard F. (2. srpna 1993). „Reformulace stínování Phong pro zjednodušení vykreslování hardwaru“ (PDF). Citováno 7. března 2011.
- ^ Boom, B.J .; Spreeuwers, L.J .; Veldhuis, R.N.J. (Září 2009). Jiang, Xiaoyi; Petkov, Nicolai (eds.). Korekce osvětlení podle modelu pro obrázky tváře v nekontrolovaných scénářích. Přednášky z informatiky. 5702. str. 33–40. Bibcode:2009LNCS.5702 ..... J. doi:10.1007/978-3-642-03767-2. hdl:11693/26732. ISBN 978-3-642-03766-5.
- ^ F. Francisco; O. Bertolami; P. J. S. Gil; J. Páramos (2012). "Modelování reflexního tepelného příspěvku k zrychlení kosmické lodi Pioneer". Pokroky ve vesmírném výzkumu. 49 (3): 337–346. arXiv:1103.5222. Bibcode:2012AdSpR..49..579S. doi:10.1016 / j.asr.2011.10.016.