Verlichting in eenheid 5

Wat je gaat creëren

Unity is steeds populairder geworden onder aspirant game programmeurs. Dit komt doordat Unity direct een groot aantal platforms ondersteunt, zoals mobiele, desktop- en console-omgevingen. Bovendien is het gratis te gebruiken voor ontwikkelaars of studio's met een lagere opbrengst.

Unity ondersteunt verschillende technologieën en componenten. Enkele van de belangrijkste componenten zijn de verlichting en verlichtingstechnieken. In Unity kun je een scène verlichten door het complexe gedrag van lichten te simuleren of door een eenvoudig verlichtingsmodel toe te passen.

In deze zelfstudie wordt uitgelegd hoe verlichting werkt in Unity 5, de verlichtingstypen en -eigenschappen en hoe deze te gebruiken om rijke belichtingseffecten te creëren..

voorwaarden

Zorg er eerst voor dat je de nieuwste versie van Unity hebt. In deze tutorial gebruiken we de versie 5.5.0f3. Zorg ervoor dat u de nieuwste Unity-versie gebruikt; anders kunt u problemen ondervinden bij het volgen van de zelfstudie en het gebruik van de natuurkundige gewrichten.

Download vervolgens de LightingInUnity5-Starter het dossier. Unzip en open het project in Unity. De demo-scène zou automatisch moeten worden geopend, maar als dat niet het geval is, kunt u deze openen vanuit de Middelen map.

Directe en indirecte verlichting

In een real-world scenario heeft u twee soorten verlichtingseffecten: directe en indirecte verlichting. Directe verlichting, zoals de naam al doet vermoeden, is licht dat rechtstreeks afkomstig is van een lichtbron (een lamp, de zon of een andere). Aan de andere kant is indirecte verlichting een licht dat van een ander object komt.

Laten we ze allebei testen en implementeren.

Directe verlichting kan al worden gezien in actie in uw Tafereel. Zoals je waarschijnlijk hebt gemerkt, heb je een gericht licht in de genoemde scène Directional Light.

Richtingslichten worden meestal gebruikt in openluchtscènes voor zon en maanlicht. Ze beïnvloeden alle oppervlakken van de objecten in de scène. Ze zijn ook de minst dure voor de grafische processor.

U kunt de Directional Light en bekijk de eigenschappen ervan in de Inspecteur ruit. U zult verschillende interessante eigenschappen opmerken zoals Type, Kleur, en Intensiteit. Je kunt met de spelen Kleur en de omwenteling eigenschappen en bekijk het resultaat in realtime. Door deze waarden te veranderen, speel je rechtstreeks met gericht licht.

Op dit moment heeft uw 3D-scène geen indirect licht. U kunt dat controleren door de Gebied dichter bij de groene of rode muur. De Gebied de kleur zal niet veranderen.


Een manier om indirecte verlichting te gebruiken, is door statische GameObjects te gebruiken. Houd er rekening mee dat het gebruik van statische game-objecten de prestaties van je game-rendering kan verbeteren, maar ook de kwaliteit zal verminderen, dus je moet de juiste balans vinden voor je game.

Voeg een vakje met gaas toe aan je scène (GameObject > 3D-object > Kubus) en plaats deze naast de bol. Noem maar op Kubus.

Selecteer de Kubus, en in de Inspecteur schakel het in Statisch eigendom.

Wanneer u de Statisch eigenschap maakt Unity automatisch een lichtkaart voor dat object en past het juiste verlichtingsmodel toe. U kunt de camera nu naar de Kubus en zie de indirecte verlichting werken. Het groen (in de afbeelding) of de rode kleur verspreidt zich nu naar de Kubus.

Als u de richting van de Directional Light, u zult opmerken dat Unity de lichtkaarten ook automatisch bijwerkt.

De indirecte verlichting die wordt toegepast op de Kubus wordt niet toegepast op de Gebied omdat het Gebied is niet statisch. Je kunt dit oplossen door het maken van de Gebied statisch (Inspecteur > Statisch).

Op dit moment kunt u directe en indirecte verlichting aan statische objecten toevoegen en configureren. 3D-scènes zijn echter samengesteld uit dynamische objecten. Daarom, hoe kunnen we dergelijke effecten toepassen op die objecten? Die vraag leidt ons naar de volgende sectie.

Lichtsondes

Wanneer uw scène niet-statische objecten bevat, moet u specifieke verlichtingstechnieken gebruiken om ze op de juiste manier te belichten, zodat ze er niet los van staan.

Door het gebruik van lichtsondes en hun posities kunt u strategische punten in de scène samplen. Elke lichtsonde kan een specifiek gebied bemonsteren en vervolgens de verlichting in dat specifieke gebied berekenen. Deze berekeningen zijn snel genoeg om tijdens het spelen te gebruiken. Het gebruik van lichtsondes vermijdt een eventuele ontkoppeling tussen de verlichting van bewegende objecten en statische licht-gemarkeerde objecten in de scène.

De Gebied is daarom een ​​dynamisch object en in tegenstelling tot wat het lijkt, is het niet correct verlicht. Als u de knop draait Directional Light uit, zult u opmerken dat de enige verlichting van invloed is op de Gebied is het omgevingslicht. Om de Gebied, je moet lichtsondes gebruiken.

Als u lichtsondes wilt toevoegen aan een gebied van uw scène, gaat u naar Component> Weergave> Light Probe Group. Hiermee wordt een lichtsondegroep in uw scène gemaakt.

De volgende stap is om de sondes van de groep in de juiste positie te plaatsen. Je wilt ze nu bij elke hoek van de Doos.

De beste manier om dit te doen is om over te schakelen naar een orthographic weergave (door op de kubus in de rechterbovenhoek van de scène te klikken). Selecteer vervolgens elk knooppunt van een lichtsonde en sleep het naar elk knooppunt Doos hoek (vergelijkbaar met de volgende afbeelding).

Herhaal het proces totdat u alle knooppunten hebt gepositioneerd.

Er zijn scènes die extra sondes vereisen om objecten goed te belichten. Om meer sondes toe te voegen, kunt u één sonde selecteren en vervolgens onder de Inspecteur, Klik op de Geselecteerde dupliceren knop.

Na de duplicatie moet u het nieuwe knooppunt op de juiste plaats plaatsen (het gedupliceerde exemplaar zal in dezelfde positie spawnen als het geselecteerde knooppunt).

Als u de interface in de Inspecteur, u zult merken dat u ook individuele sondes kunt toevoegen (Voeg de probe toe), verwijder probes (Verwijder geselecteerde), of selecteer alle sondes uit de groep (Selecteer alles).

Om de lichtsondes in actie te zien, selecteert u de Gebied en voeg een toe star lichaam ernaar toe (Toevoegen Component> star lichaam). Wijs vervolgens een materiaal toe aan de collider. Je kunt het rubberen materiaal gebruiken.

Plaats nu de Gebied bij de top van de Doos en druk op Spelen. U kunt nu de juiste verlichting van de Gebied. Om de verschillen te zien, schakelt u de lichtsondes en uit Spelen de scène opnieuw.

Puntlicht

Puntlichten zijn het meest voorkomende licht in games. Ze worden meestal gebruikt voor explosies en gloeilampen. Omdat ze licht in alle richtingen uitzenden, hebben ze gemiddelde kosten op de grafische processor. Het berekenen van schaduwen bij het gebruik van puntlichten is echter duurder.

Voeg een puntlicht toe door te selecteren GameObject> Licht> Puntlicht. Plaats vervolgens de Punt licht binnen in de Doos dichtbij de top.

Selecteer de Punt licht en bekijk de parameters in de Inspecteur.

De eerste parameter is Type. Hier kunt u het type licht instellen dat u wilt gebruiken. U kunt kiezen Plek, richting, Punt, of Gebied. Elk biedt een specifiek lichteffect. U kunt een van de opties selecteren en de resultaten in realtime bekijken. Voor deze zelfstudie gebruikt u echter de Punt keuze. Dit zorgt voor een gloeilampeffect (licht schijnt gelijkmatig in alle richtingen).

De tweede parameter is Bakken. U kunt dit instellen Echte tijd, Gebakken, of Gemengd. Laat de waarde als standaard. De reeks parameter bepaalt hoe ver het licht wordt uitgezonden vanuit het midden van de Punt licht. De Kleur parameter definieert de kleur van het uitgezonden licht.

Intensiteit definieert de helderheid van het licht, en Bounce-intensiteit definieert de indirecte lichtintensiteitsvermenigvuldiger. De Schaduwtype definieert de schaduweigenschappen en schaduwtypen. U kunt het instellen op Geen schaduwen, Harde schaduwen, of Zachte schaduwen. Onthoud dat puntlichtschaduwen de duurste zijn voor de motor, dus wees voorzichtig bij het selecteren van deze optie.

Als u selecteert Harde schaduwen of Zachte schaduwen, je zult de schaduw zien die geproduceerd wordt door de Gebied en de Punt licht. Wanneer u de Sterkte waarde, zal de schaduw ook verzwakken of accentueren. De Resolutie laat je het detailniveau van de schaduwen definiëren. Tenslotte, Vooroordeel en Normal Bias laat u de gebruikte offset configureren bij het vergelijken van de pixelpositie in de lichte ruimte met de waarde van de schaduwkaart.

De Koekje is een optionele parameter die een alfakanaal vertegenwoordigt van een textuur die wordt gebruikt als een masker dat bepaalt hoe helder het licht in verschillende posities is. Omdat dit een puntlicht is, moet de gebruikte textuur een Cubemap zijn.

De Teken Halo optie maakt alleen een halo rond de lichtbron. Gloed definieert een verwijzing naar een overstraling die moet worden weergegeven in de positie van het licht. Gloed en Teken Halo kan handig zijn bij het debuggen van de 3D-scène en mogelijke knelpunten.

Render-modus definieert hoe belangrijk verlichting is wanneer de renderer de scène rendert. Hoe belangrijker, hoe intensiever de weergave zal zijn. De Render-modus kan worden ingesteld op AutoBelangrijk, of Non-Belangrijke. Tenslotte, Maskeren masker wordt gebruikt om groepen objecten te selecteren of uit te sluiten die worden beïnvloed door het puntlicht.

Nu u alle eigenschappen van de puntverlichting hebt gezien, laten we het hebben over directe en indirecte verlichting bij het gebruik van puntlampen. Wanneer u een spel maakt, is een van de belangrijkste kenmerken het gebruik van verlichting en belichtingseffecten. Een zwaar lichtscenario leidt echter tot zwaardere laadtijden, FPS-knelpunten en meer werk voor de CPU. Daarom wordt u geadviseerd om mee te spelen Shadows Type en Bakken eigenschappen om uw scèneprestaties in balans te brengen.

Bijvoorbeeld als u de Bakken naar Echte tijd en de Schaduwtype naar Harde schaduwen of Zachte schaduwen, je hebt een heel mooi, realistisch schaduweffect tussen de Gebied en de Doos. Deze opstelling kan echter zwaar zijn voor de CPU als uw scène uit veel lichten bestaat.

Hoe dat probleem op te lossen? U kunt in eerste instantie de Bakken parameter naar Bakken. Zodra je dit hebt gedaan, maakt Unity automatisch lightmaps voor dit licht, waardoor je een prestatieverbetering krijgt. Deze prestatieverbetering heeft echter zijn kosten: nu hoeft u geen schaduwen te laten werpen door het puntlicht in dynamische objecten, zoals de Gebied.

De beste methode is om elk licht afzonderlijk te analyseren en vervolgens verder te gaan. In deze scène zou het bijvoorbeeld logischer zijn om te hebben Echte tijd Bakken en Hard Shadows, omdat er slechts één lichtbron in de doos aanwezig is. 

Als uw lichtbron echter een fakkel in een muur is, is het beter om deze in te stellen Bakken naar Bakken en laat Unity de lightmaps maken.

Bedenk dat het aan de ontwikkelaar is om de kwaliteit en prestaties van het spel te beheren. Houd er daarom rekening mee dat je voorzichtig moet zijn om dat evenwicht te bewaren, vooral als je je ontwikkelt voor mobiele apparaten.

Spot Light

Spotlichten zenden licht uit een lichtbron die op een specifieke regio is gericht. Ze verlichten alleen objecten binnen een specifiek gebied, een gebied dat wordt begrensd door een 3D-kegel. In feite werken ze als de koplampen van een auto. Zoals je je misschien kunt voorstellen, zijn ze perfect voor zaklantaarns, koplampen van auto's of lantaarnpalen. Ze zijn ook het duurste type licht voor de grafische processor.

Laten we nu het Punt licht in een spotlicht. Selecteer de Punt licht je eerder hebt gemaakt en de bijbehorende hebt gewijzigd Type naar Plek. volgende, Draaien het licht zodat het de vloer van de kan verlichten Doos. Hernoem het naar Spotlicht.

Zoals je misschien hebt gemerkt, in de Inspecteur, de Plek parameters zijn vergelijkbaar met de Punt degenen. U hebt echter een nieuwe gebeld Spothoek.

De Spothoek bepaalt de hoek van de lichtkegel in graden.

Met betrekking tot directe en indirecte verlichting werken spotlichten precies zoals puntlampen. Je hebt dezelfde beperkingen en voordelen. Daarom moet je voorzichtig zijn bij het instellen van de balans van lichten in je spel.

Merk op dat je altijd met schaduwen en bakken kunt spelen om het uiterlijk en de prestaties in balans te brengen.

Area Light

Een gebiedslicht is licht wordt uitgezonden in alle richtingen aan een kant van een rechthoekig gebied van een vlak. Deze rechthoek is in beide gedefinieerd Breedte en Hoogte eigenschappen. De stadslichten zijn alleen beschikbaar tijdens het bakken van de lichtkaart, wat betekent dat ze tijdens runtime geen effect hebben op objecten.

Selecteer de Spotlicht en verander zijn Type naar Gebied en de naam ervan Gebiedslicht. Plaats vervolgens het licht in uw doos en in de Inspecteur, verander de Breedte en de Hoogte, om het hele gebied binnen de Doos.

Door naar de Gebiedslicht parameters, zult u merken dat de meeste parameters vergelijkbaar zijn met de vorige, bijvoorbeeld Type, Teken Halo, Gloed, Render-modus, en Maskeren masker

De echte nieuwe parameters zijn de Breedte en Hoogte.Beide worden gebruikt om de grootte van het rechthoekige lichtgebied in te stellen.

Als u op drukt Spelen, je zult zien dat het gebiedslicht zijn licht werpt op alle objecten binnen zijn bereik. De grootte van de rechthoek wordt bepaald door de Breedte en Hoogte eigenschappen. De kant waarop licht wordt gegoten is het normale van het vliegtuig, wat hetzelfde is als het licht positief is Z richting. Het licht wordt uitgestraald door het hele oppervlak van de rechthoek. Hierdoor zijn schaduwen en schaduwen van het getroffen object meestal veel zachter dan met punt- of gerichte lichtbronnen.

De belichtingsberekeningen voor een gebiedslicht zijn behoorlijk processorintensief, dus ze zijn niet beschikbaar tijdens runtime en kunnen dat alleen Gebakken in lichte kaarten.

conclusies

Dit concludeert de tutorial over verlichting in Unity 5. Je hoorde over verschillende lichteffecten en configuraties. Met deze kennis kunt u nu verschillende lichteffecten toepassen op uw game of applicatie.

Eenheid heeft een actieve economie. Er zijn veel andere producten die u helpen uw project uit te bouwen. De aard van het platform maakt het ook een geweldige optie van waaruit je je vaardigheden kunt verbeteren. Hoe het ook zij, u kunt alles zien wat we beschikbaar hebben in de Envato Marketplace.

Als je nog vragen of opmerkingen hebt, kun je zoals altijd een regel in het opmerkingengedeelte plaatsen.