Unitatea a devenit din ce în ce mai populară printre programatorii de jocuri de noroc. Acest lucru se datorează faptului că Unity suportă în mod direct o multitudine de platforme, cum ar fi mediile mobile, desktop și console. Mai mult decât atât, este gratuit pentru a utiliza pentru dezvoltatorii de venituri mai mici sau studiouri.
Unitatea suportă mai multe tehnologii și componente. Unele dintre componentele cheie sunt tehnicile de iluminare și iluminare. În Unitate puteți lumina o scenă prin simularea comportamentului complex al luminilor sau prin aplicarea unui model simplu de iluminare.
Acest tutorial se va concentra pe explicarea modului în care funcționează iluminatul în Unity 5, tipurile și proprietățile iluminării și modul de utilizare a acestora pentru a crea efecte de iluminare bogate.
În primul rând, asigurați-vă că aveți cea mai recentă versiune a Unity. În acest tutorial folosim versiunea 5.5.0f3. Asigurați-vă că utilizați ultima versiune Unity; în caz contrar este posibil să aveți probleme în urma tutorialului și folosind articulațiile fizice.
Apoi, descarcă LightingInUnity5-Starter fişier. Dezarhivați și deschideți proiectul în Unity. Scena Demo ar trebui să se deschidă automat, dar dacă nu, puteți să o deschideți din bunuri pliant.
Într-un scenariu real, aveți două tipuri de efecte de iluminare: iluminare directă și indirectă. Iluminarea directă, după cum sugerează și numele, este lumina care provine direct dintr-o sursă de lumină (o lampă, soare sau altul). Pe de altă parte, iluminarea indirectă este lumină care provine dintr-un alt obiect.
Să le testam și să le implementăm pe amândouă.
Iluminarea directă poate fi văzută deja în acțiunea dvs. Scenă. După cum probabil ați observat, aveți o lumină direcțională în scena numită Lumină direcțională.
Luminile direcționale sunt utilizate în cea mai mare parte în scene în aer liber pentru soare și lumina lunii. Acestea afectează toate suprafețele obiectelor din scenă. Ele sunt, de asemenea, cel mai puțin costisitoare pentru procesorul grafic.
Puteți selecta Lumină direcțională și să vizualizeze proprietățile sale în Inspector panoul. Veți observa mai multe proprietăți interesante, cum ar fi Tip, Culoare, și Intensitate. Puteți juca cu Culoare si Rotație proprietăți și să vedeți rezultatul în timp real. Prin schimbarea acestor valori, jucați direct cu lumina direcțională.
În acest moment, scena dvs. 3D nu are nici o lumină indirectă. Puteți verifica acest lucru mutând Sferă mai aproape de peretele verde sau roșu. Sferă culoarea nu se va schimba.
O modalitate de a utiliza iluminarea indirectă este utilizarea GameObjects statice. Rețineți că utilizarea obiectelor statice de joc poate îmbunătăți performanța redării jocului dvs., dar va reduce și calitatea, astfel încât trebuie să găsiți echilibrul potrivit pentru jocul dvs..
Adăugați o cutie cu ochiuri de plasă în scenă (GameObject > Obiect 3D > cub) și plasați-o lângă sferă. Numeste cub.
Selectează cub, și în interior Inspector activați Static proprietate.
Când activați Static proprietate, Unity creează automat o hartă luminoasă pentru obiectul respectiv și aplică modelul de iluminare corect. Acum puteți mișca camera spre cub și să vedeți funcționarea iluminării indirecte. Culoarea verde (în imagine) sau roșu se răspândește acum în cub.
Dacă schimbați direcția Lumină direcțională, veți observa că Unity actualizează automat și hărțile luminoase.
Iluminatul indirect care se aplică la cub nu se aplică la Sferă deoarece Sferă nu este statică. Puteți rezolva acest lucru făcând Sferă static (Inspector > Static).
În acest moment, puteți adăuga și configura iluminarea directă și indirectă a obiectelor statice. Cu toate acestea, scene 3D sunt compuse din obiecte dinamice. Prin urmare, cum putem aplica astfel de efecte acestor obiecte? Această întrebare ne duce la următoarea secțiune.
Când scena dvs. conține obiecte non-statice, trebuie să utilizați tehnici specifice de iluminare pentru a le lumina corect astfel încât să nu pară deconectate de la scenă.
Prin utilizarea de sonde luminoase și pozițiile lor, puteți încerca puncte strategice în scenă. Fiecare sondă de lumină poate să probeze o regiune specifică și apoi să calculeze iluminatul în acea regiune specifică. Aceste calcule sunt suficient de repede pentru a fi utilizate în timpul jocului. Folosirea probelor de lumină evită orice deconectare între iluminarea obiectelor în mișcare și obiectele statice cu lumină în scenă.
Sferă este un obiect dinamic și, spre deosebire de ceea ce pare, nu este iluminat corect. Dacă porniți Lumină direcțională off, veți observa că singura iluminare care afectează Sferă este lumina ambientală. Pentru a ilumina corect Sferă, trebuie să utilizați sonde luminoase.
Pentru a adăuga sonde luminoase într-o zonă a scenei tale, te duci la Component> Rendering> Light Probe Group. Acest lucru va crea un grup de sonde luminoase în scenă.
Următorul pas este să puneți sondele grupului în poziția corectă. Voi acum doriți să le așezați lângă fiecare colț al Cutie.
Cel mai bun mod de a face acest lucru este să vă schimbați ortografic vizualizați (făcând clic pe cubul din colțul din dreapta sus al scenei). Apoi, selectați fiecare nod de sonde luminoase și trageți-l în fiecare Cutie colț (similar cu cea din următoarea imagine).
Repetați procesul până când ați poziționat toate nodurile.
Există scene care necesită sonde suplimentare pentru a ilumina corect obiectele. Pentru a adăuga mai multe sonde, puteți selecta o singură sondă și apoi sub Inspector, faceți clic pe Duplicat selectat buton.
Dupa duplicare, trebuie sa plasati noul nod in locul potrivit (cel duplicat va cade in aceeasi pozitie ca cel selectat).
Dacă priviți mai atent interfața din Inspector, veți observa că puteți adăuga și sonde individuale (Adaugă probă), ștergeți sondele (Sterge selectia) sau selectați toate sondele din grup (Selectează tot).
Pentru a vedea sondele luminoase în acțiune, selectați Sferă și adăugați a Corp rigid la acesta (Adăuga Component> Corp rigid). Apoi, atribuiți un material colizorului. Puteți folosi materialul de cauciuc.
Acum, așezați Sferă în partea de sus a ecranului Cutie și apăsați Joaca. Acum puteți vedea iluminarea corespunzătoare a Sferă. Pentru a vedea diferențele, dezactivați sondele luminoase și Joaca scena din nou.
Luminile punctuale sunt cea mai comună lumină în jocuri. Sunt folosite de obicei pentru explozii și becuri. Deoarece ele emit lumină în toate direcțiile, au un cost mediu pe procesorul grafic. Cu toate acestea, calcularea umbrelor la utilizarea luminilor de punct este mai scumpă.
Adăugați o lumină punct prin selectarea GameObject> Light> Light Point. Apoi, poziționați Lumina punctului în interiorul Cutie lângă partea de sus.
Selectează Lumina punctului și să aruncați o privire asupra parametrilor din Inspector.
Primul parametru este Tip. Aici puteți seta tipul de lumină pe care doriți să o utilizați. Puteți selecta fie Loc, direcțională, Punct, sau Zonă. Fiecare oferă un efect specific de lumină. Puteți selecta oricare dintre opțiuni și puteți vedea rezultatele în timp real. Cu toate acestea, pentru acest tutorial veți folosi Punct opțiune. Acest lucru va crea un efect cu bec (lumina strălucește în toate direcțiile în mod egal).
Al doilea parametru este coacere. Puteți să-l setați Timp real, Copt, sau Amestecat. Lăsați valoarea implicită. Gamă parametrul definește cât de departe este emisă lumina din centrul Lumina punctului. Culoare parametrul definește culoarea luminii emise.
Intensitate definește strălucirea luminii și Bounce Intensity definește multiplicatorul indirect al intensității luminii. Tip de umbra definește proprietățile umbrelor și tipurile de umbre. Puteți să o setați Nu există Umbre, Hard Shadows, sau Umbrele moi. Amintiți-vă că umbrele de lumină punct sunt cele mai scumpe pentru motor, deci aveți grijă atunci când selectați această opțiune.
Dacă selectați Hard Shadows sau Umbrele moi, veți vedea umbra produsă de Sferă si Lumina punctului. Când schimbați Putere valoare, umbra va atenua sau accentua. Rezoluţie vă permite să definiți nivelul detaliilor umbrelor. In cele din urma, Părtinire și Bias normal permiteți configurarea decalajului utilizat atunci când se compară poziția pixelilor în spațiul luminos cu valoarea din harta umbră.
fursec este un parametru opțional care reprezintă un canal alfa al unei texturi utilizate ca o mască care determină cât de strălucitoare este lumina în diferite poziții. Deoarece aceasta este o lumină punctuală, textura utilizată trebuie să fie o Cubemap.
Desenați Halo opțiunea face doar un halo în jurul sursei de lumină. semnal luminos definește o referință la un flare care urmează să fie redat la poziția luminii. semnal luminos și Desenați Halo poate fi utilă atunci când se depanează scena 3D și posibile blocaje.
Modul de redare definește cât de importantă este iluminarea când redarea face scena. Cu cât este mai important, cu atât va fi mai intensă randarea. Modul de redare poate fi setat la Auto, Important, sau Neimportante. In cele din urma, Masca de curățare este utilizat pentru a selecta sau a exclude grupuri de obiecte care sunt afectate de lumina punctului.
Acum că ați văzut toate proprietățile luminoase, hai să vorbim despre iluminarea directă și indirectă atunci când folosiți lumini punctuale. Când creați un joc, una dintre principalele caracteristici este folosirea efectelor de iluminare și iluminare. Cu toate acestea, un scenariu greu de iluminat va duce la mai mari timpi de încărcare, blocări FPS și mai multă muncă pentru CPU. Prin urmare, vi se recomandă să jucați umbre Tip și coacere pentru a echilibra performanța scenă.
De exemplu, dacă setați coacere la Timp real si Tip de umbra la Hard Shadows sau Umbrele moi, veți avea un efect frumos, realist de umbră între Sferă si Cutie. Cu toate acestea, această configurație poate fi dificilă pentru CPU dacă scena dvs. este compusă din mai multe lumini.
Cum de a rezolva problema? Puteți seta inițial coacere parametru pentru Coace. Odată ce faceți acest lucru, Unity va crea în mod automat lumini pentru această lumină, oferindu-vă un impuls de performanță. Cu toate acestea, această creștere a performanței are costul său: acum nu aveți umbre aruncate de lumina punctului în obiecte dinamice, cum ar fi Sferă.
Cea mai bună practică este de a analiza fiecare lumină în parte și apoi să procedați corespunzător. De exemplu, în această scenă ar avea mai mult sens Timp real coacere și Greu umbre, deoarece în interiorul cutiei există o singură sursă de lumină.
Cu toate acestea, dacă sursa dvs. de lumină este o torță într-un perete, ar fi mai bine să setați coacere la Coace și lăsați Unitatea să producă tablourile de lumină.
Reamintim că depinde de dezvoltator să gestioneze calitatea și performanța jocului. Prin urmare, rețineți că trebuie să fiți atenți în menținerea acestui echilibru, mai ales dacă vă dezvoltați pentru dispozitive mobile.
Luminile spot emite lumină de la o sursă de lumină care vizează o anumită regiune. Ele doar iluminează obiecte dintr-o anumită regiune, o regiune delimitată de un con 3D. Practic, ei funcționează ca farurile unei mașini. După cum vă puteți imagina, ele sunt perfecte pentru lanterne, faruri auto sau stâlpi de lampă. Ele sunt, de asemenea, cel mai scump tip de lumină pentru procesorul grafic.
Să schimbăm acum Lumina punctului într-o lumină spot. Selectează Lumina punctului ați creat mai devreme și ați schimbat-o Tip la Loc. Următor →, Roti lumina astfel încât să poată lumina podeaua Cutie. Redenumiți-o Lumina de la fața locului.
Așa cum ați observat, în interiorul Inspector, Loc parametrii sunt asemănători cu Punct cele. Cu toate acestea, aveți unul nou numit Spațiul unghiular.
Spațiul unghiular determină unghiul conului luminos în grade.
În ceea ce privește iluminarea directă și indirectă, lămpile spot funcționează exact ca lumini punctuale. Aveți aceleași limitări și avantaje. Prin urmare, trebuie să fii atent la stabilirea echilibrului luminilor din joc.
Rețineți că puteți juca întotdeauna cu umbre și coacere pentru a echilibra aspectul și performanța.
O lumină de zonă este emisă de lumină în toate direcțiile dintr-o parte a unei suprafețe dreptunghiulare a unui plan. Acest dreptunghi este definit în ambele Lăţime și Înălţime proprietăți. Luminile de zonă sunt disponibile numai în timpul coacerii pe hartă, ceea ce înseamnă că acestea nu au niciun efect asupra obiectelor în timpul rulării.
Selectează Lumina de la fața locului și schimba-l Tip la Zonă și numele său la Suprafața luminoasă. Apoi, poziționați lumina în interiorul cutiei și în Inspector, schimba Lăţime si Înălţime, pentru a acoperi întreaga zonă din interiorul Cutie.
Privind la Suprafața luminoasă parametrii, veți observa că majoritatea parametrilor sunt similare cu cele anterioare, de exemplu Tip, Desenați Halo, semnal luminos, Modul de redare, și Masca de curățare.
Parametrii reali noi sunt Lăţime și Înălţime.Ambele sunt folosite pentru a seta dimensiunea zonei luminoase dreptunghiulare.
Dacă apăsați Joaca, veți vedea că lumina zonei își aruncă lumina asupra tuturor obiectelor din gama sa. Dimensiunea dreptunghiului este determinată de Lăţime și Înălţime proprietăți. Partea pe care este aruncată lumina este planul normal, care este la fel ca lumina pozitivă Z direcţie. Lumina este emisă de pe întreaga suprafață a dreptunghiului. Din acest motiv, umbrirea și umbrele obiectului afectat tind să fie mult mai moi decât cu surse de lumină punctuală sau direcțională.
Calculele de iluminare pentru o lumină de zonă sunt destul de intensive pentru procesoare, astfel încât acestea nu sunt disponibile la timpul de execuție și pot fi numai Copt în hărți luminoase.
Acest lucru încheie tutorialul despre iluminatul din Unitatea 5. Ați învățat despre mai multe efecte și configurații de iluminare. Cu aceste cunoștințe, acum puteți aplica mai multe efecte de iluminat jocului sau aplicației.
Unitatea are o economie activă. Există multe alte produse care vă ajută să vă construiți proiectul. Natura platformei o face de asemenea o opțiune excelentă din care vă puteți îmbunătăți abilitățile. Indiferent de situație, puteți vedea tot ce avem la dispoziție în piața Envato Marketplace.
Dacă aveți întrebări sau comentarii suplimentare, ca întotdeauna, nu ezitați să renunțați la o linie în secțiunea de comentarii.