Global Illumination
Új Projekt
Rendering egyenlet I(x,w)=Ie(x,w)+I(h(x,-w’),w’) fr(’,x,) cos’dw’
Ambiens tag L (V) Sl Ll (Ll)* fr (Ll ,N,V)cos l’ + ka*La GI Lokális illumináció + ambiens tag L (V) Sl Ll (Ll)* fr (Ll ,N,V)cos l’ + ka*La
GI Forrás: http://www.geomerics.com/wp-content/uploads/2014/03/Unite-Europe-deck-with-notes.pdf
GI
GI
GI
Kezdő lépések Csináljunk egy síkot Készítsünk Cornell dobozt: Egy oldalról nyitott, hogy belássunk Egy fala kék (új material kell hozzá) Egy fala piros (új material kell hozzá) Hátsó fala és a plafon maradhat diffúz fehér (új material-t csinálhatunk neki) Töröljük ki a fényforrást A Lighting beállításoknál szedjük le az égboltot, és az ambiens fényt
Cornell doboz
Area Light Hozzunk létre egy területi fényforrást: GameObject/Light/Area Light Helyezzük közvetlenül a doboz plafonja alá Nincs hatással a képre (baked only)
Globális illumináció Window/Lighting Precomputed Realtime GI-t kapcsoljuk ki Baked Gi legyen bekapcsolva Alap paraméterek jók Az auto kapcsolót kikapcsolhatjuk, és majd mi magubnk fogunk frissíteni a Build gombbal
Globális Illumináció A build gombra kattintva nem történik semmi Csak a statikus objektumokra lehet GI-t előre számolni Állítsuk be a talajra és a doboz falaira a static kapcsolót Nyomjunk újra Build-et
Globális Illumináció
Hogyan működik?
Lightmapping Light map Színtér Lokális illumináció részlet textúra nélkül Részlet textúra koordináták 3 fényforrás 1 objektum 2 textúra koordináta készlet Végső kép
Lightmapping * = + =
Globális GI tulajdonságok
Globális GI tulajdonságok Próbálgassuk a paramétereket Baked resolution Padding nem látszik annyira, fel kell emelni jól (100) General GI: IntensityBoost
Fényforrás tulajdonságai Itt is meg lehet adni a bounce intensity-t Fényerőn érdemes növelni, 2-re
Objektum a Cornell dobozban Adjunk hozzá egy új objektumot: sphere Adjunk neki új materialt: legyen diffúz fehér Vigyük a doboz közepébe Állítsuk be statikusra
Objektum a Cornell dobozban
Objektum a Cornell dobozban Valami nem jó Meg lehet nézni az UV chart-okat Látszik a vágási határ Ehhez az objektumhoz több információ kellene Növeljük meg az atlaszban a méretét Lighting ablak Object fül, a gömb legyen kiválasztva Scale In Lightmap legyen 5
Objektum a Cornell dobozban
Ki lehet próbálni Gömbre külön lightmap property Resolution feltol 4-re Global resolution levesz 5-re Nem lesz jobb
Normal map? A talajhoz hozzunk létre új material-t Legyen diffúz fehér Adjunk hozzá normal map-et (tiling-ot fel lehet venni pl. 5-re) Assetek között normal2 v. normal3 A textúrára be kell állítani az import tulajdonságainál, hogy normal map, és nem kell számolni A material alkalmazva nem látunk különbséget, nincs bump
Directional light map
Directional light map A gömbre is rárakhatjuk ezt az anyagjellemzőt ideiglenesen
Spekuláris anyagok Állítsuk át a talaj textúrát spekuláris anyagra Feketék lettek a spekuláris anyagok Át kell állítanunk a lightmap generálást: directional specular-ra
Diffúz-spekuláris anyag Ez tisztán spekuláris anyag volt (fémszerű) Vegyük a spekuláris színt kb 0.5 intenzitásúra: megjelenik a diffúz tag is
Új színtér Mentsük el a jelenetet Csináljunk új jelenetet az új próbálkozásainkhoz Építsünk föl egy jelenetet
Új színtér Nem kell skybox Nem kell ambiens fény Minden anyag legyen diffúz Minden objektum legyen statikus Baked GI be, Precomputed GI ki General GI: non-directional
Fényforrás paraméterei
Fényforrás paraméterei
Fényforrás paraméterei
Talaj Light: vissza hard shadow-ra Talaj keskenyítsük
Kitekintés - Lighting I(x,w)=Ie(x,w)+I(h(x,-w’),w’) fr(’,x,) cos’dw’ I = Ie + t
Kitekintés - Path Map Texture Atlas Entry point generation: Uniform Modeller aided
Kitekintés - Path Map le
Kitekintés - Path Map - Clustering CPU TC Path Map Texture … … Te
Kitekintés - Path Map - Példák
Enlighten Realtime GI
Clusterek
Cluster megvilágítások
Realtime GI végső kép
Realtime GI
Realtime GI Fényforrást lehet mozgatni Nincs hosszadalmas újraszámolás
Árnyalással
Fény emittáló tárgyak Rakjunk be egy új gömböt (0.5 skálázás) Adjunk neki új anyagjellemzőt: sárga emisszió, a többi szín lehet fekete Legyen statikus
Dinamikus Objektum Adjunk hozzá egy új gömböt (0.5 skálázás) Legyen diffúz fehér Ne legyen statikus
Fényforrás Bake mód
Fényforrás Bake mód
Sok fényforrás berakása Mikor használunk sima bake-et? Csináljunk sok sárgás fényforrást pl. minden második oszlopra Ezek legyenek sima baked (Az eredeti fényforrás legyen újra realtime, de egy kicsit kapcsoljuk is ki) Ha mixed lenne, realtim kellene mindegyikkel számolni, ami nagyon költséges
Sok fényforrás berakása
Light probes A dinamikus objektummal még baj van Nem hat rá a környezet, csak a realtime és a mixed fényforrások Megoldás: Light probe Hasonló, mint a diffúz env mapping (ilyet már csináltunk) Ahelyett hogy mindig frissítenénk az objektum középpontjában egy cubemap-et, sok kicsi cubemap-ed készítünk a jelenet előre meghatározott pontjain Ezek között interpolálunk
Light Probe GameObject/Light/Light Probe Group Létre is jön 8 mintapont Helyezzük el őket pl. így (skálázni, eltolni lehet az egész probe group-ot):
Light Probe Ha nincs kiválasztva a group, az egyes probe pozíciókon látszik a környezet hatása
Light Probe A dinamikus gömbünkre már hat a környezet
Light Probe pozíciók Vannak problémás helyek Árnyékok nem jelennek meg Fényes területek nem jelennek meg Adjunk hozzá új probe-okat
Vége