Kinetix

"Aki másnak felbontás...!"


  • Aldaryn
    #6384
    /Na, akkor egy gyors áttekintés a foton mapping alapjairól:/
    Photon mapping

    Az eljárás röviden...
    Az eljárás során egy rakatt fotont lő ki a rendzser a fényforrásokból, amik adott iterációban össze-vissaz pattognak a felületeken, méghozzá úgy, hogy figyelembe veszik a felületek tulajdonságait, és ezek alapján akár igazi fény fotonok lennének, meg is változnak közben.
    A legelső ütközést általában figyelmen kívül szokta hagyni a rendszer, hiszen ez gyakorlatilag a direkt megvilágítás lenne. (Bár erre is van lehetőség, hogy a direkt megvilágítás is a fotonmap-ban legyen tárolva...) Ezek után viszont rögzíti a fotonok becsapódási helyzetét 3D-ben. (A többi salangra itt most nem térek ki, mint pl. diffuse és specular bounce közti különbségek stb...) Ez a becsapódási map lesz gyakorlatilag a fotonmap. Ezen csupán pontok vannak rögzítve, és a pontokhoz tartozó értékek... Erről ennyi elég is.

    Megvilágítás leképzése...
    Mivel a fotonmap csupán egy adag pont, és ezekhez tartozó fényérték, rendereléskor (vagy előtte...) szüksége van a rendszernek egy eljárásra, ami ebből a map-ból számunkra is látható eredményt fabrikál (Irradiance estimate) Ehhez a passhoz tartoznak a nevezetes "Search Radious", és "Photons in estimate" értékek. Ezek mind Brazilban, mind VRay-ben nagyon élesen befolyásolják az elkészült fotonmap kinézetét.
    Az Irradiance Estimate-nek egyetlen feladata van tehát: Mint a nevéből is adódik, megbecsüli (kiszámolja...) a adott helyre jutó fényt a fotonmap alapján. Ehhez a következőket teszi: Első lépésben veszi a vizsgált területet, és felvesz körülötte egy R sugarú területet (Ez a terület lehet gömb, elliptoid, stb...) Ez az R sugár a Search radious. Mint a neve is sugallja, a keresési sugárról van szó. Ebben a sugárban vizsgálódik adott iterációban az Irradiance Estimator. Ezután nekilát, és elkezdi keresni a fotonokat, N darab fotont feldolgoz ezen az adott sugáron belül, ha ezt az N darabot feldolgozta (Általában középről keres polárisan a mintából indulva...) akkor tovább is lép (az átlagolás után) a következő mintára (iterációra...) és a többi esetlegesen még R-be eső fotonnal nem is törődik. Az N értéke a Photons in estimate.
    Szóval megvan az N darab foton R-en belül. Szuper, ezeket a fotonokat az Irradiance Estimator átlagolja, és ebből megkapjuk az aktuális mintára eső féynértéket.
    A fenti okfejtésből következik tehát, hogy a két nevezets érték beállítása nagyon keményen befolyásolja a keletkező képet...
    Gyakorlatiasabban....
    Tegyük fel, hogy van egy fotonmapunk, amiből a scene minden 10 egységére 2000 foton jut.
    Hamost R-t 10-nek és N-t 2000-nek választjuk meg, akkor elméletileg optimális a map. Egy 10 egység nagyságú területen az ott lévő összes fotont feldolgozzuk... Azonban mi van, ha 10 egységben a fotonok nagyon változó intenzitásuak? Ez esteben el fogjuk veszteni a felbontást, hiszen egy éles, fénylő vonal, és a mellette még 10 egységen belülre eső sokkal halványabb fotonok átlagát fogjuk kapni, ami az éles csík fakulását, és a halványabb részek felfénylését eredményezi.
    Ez esetben vegyük lejjebb R-t pl 2-re, ekkor már sokkal tagoltabb mapot kapunk, azonabn a gyorsítás érdekében nem árt, ennek megfelelően N-et is lejjebb venni.
    Egy másik eset, hogy R nagyon nagy, és N kicsi, ez esetben rengeteg foton nem kerül majd feldolgozásra, hiszen N elérésekor a folyamat leáll, és nem keres több fotont, még akkor sem, ha pedig van ott...
    Amikor R és N is nagyon nagy, pl esetünkben 100 és 1.000.000 egy szép elmosódott foltot fogunk kapni, annak ellenére, hogy majd az összes fotont feldolgoztuk...
    Leginkább a fontonmapok által keltett árnyékokban látható ennek a két értéknek a kapcsolata igazán, hiszen ha adott R-hez túl nagy R-t választunk pl. akkor az árnyék széle is határozatlanabb lesz, és elmosódik. Itt tényleg szépen megfigyelhető, és sokkal emberközelibb a felfoghatósága.
    Másik gyakori effekt a szemcsés fotonmap. Gondoljunk csak bele: Ha R túl kicsi, túlságosan diszkrét pontok fognak létrejönni. Főleg, ha N is nagyon kicsi. Kicsi R értékek esetében N megválasztása a kulcs. Hiszen: N vizsgálatakor a rendszer középről indul, és megyen kfelé R-en, ha eléri N-t, hiába van R-ben még egy rakatt foton, rossz átlagolt becslést fogunk kapni a féynértékre adott R-en...

    Remélem érthető volt, amit írtam, és segít egy kicsit egy-két embernek.

    További jó fotonmapozást!