Light-mapping voor de Unreal Engine was een extreem saai proces, omdat het alleen kon worden voorbereid in een extern programma zoals Max of Maya. Welnu, gelukkig is er een oplossing! In de eerste van onze Unreal Dev Kit-tutorials laat Jarlan Perez ons zien hoe we eerst een model voorbereiden en vervolgens lichtmapping volledig binnen de UDK zelf instellen.
In het bestand RefFiles.zip vindt u twee mappen: pakket en tafereel. Zowel het begin- als het eindbestand voor deze zelfstudie zijn beschikbaar in de tafereel map.
Laten we beginnen. Start de UDK en open de LightMapping_Start.udk binnenin je tafereel map. Dit is een heel eenvoudige scène bestaande uit een afgetrokken kubus en een enkele spot zoals hieronder getoond.
Ga je gang en open de Inhoudsbrowser en laad de LightMapping.upk pakket gelokaliseerd in de pakket map, zoals hieronder weergegeven. Binnenin vind je twee statische mazen, een kubus met de naam baseren die we zullen gebruiken voor de vloer waar onze schaduwen zullen projecteren, en een cirkelvormige buisvormige mesh genaamd buis dat zal het gaas zijn dat de schaduwen werpt.
Selecteer dat basisnet en sleep het naar je scène.
Vervolgens gaan we de tube naar de scène slepen. Zorg ervoor dat je een redelijke hoeveelheid ruimte laat tussen de twee mazen, zodat we een vrij heldere schaduw kunnen krijgen in de laatste scène.
Laten we doorgaan en de verlichting testen en zien wat we krijgen. Zorg ervoor dat u de Gebruik Lightmass optie, omdat het simuleren van GI uw bouwtijd aanzienlijk zal verminderen en op dit punt hebben we er niet echt veel gebruik van! Gebruik de onderstaande instellingen:
Je zou iets moeten krijgen dat lijkt op de afbeelding hieronder. We krijgen momenteel extreem zachte, subtiele schaduwen en waarom zijn er geen schaduwen op ons basismet? Dat is wat we gaan onderzoeken.
Elke statische maas die is geïmporteerd in Unreal heeft zijn eigen unieke UV-set die wordt gebruikt om texturen toe te passen. Om het gewenste, lichtmakende effect te krijgen dat we zoeken, moeten we een geheel nieuwe UV-set maken die zal worden gebruikt om de schaduwen van je Lightmap te redden. Zoals u kunt zien, heeft dit object momenteel slechts één UV-kaart of kanaal.
Als u onze nieuwe UV-kaart wilt maken, gaat u eerst naar Mesh> Unieke UV-straling genereren, zoals hieronder wordt weergegeven:
Dit opent een klein submenu voor UV-opwekking. Aangezien deze UV-kaarten alleen worden gebruikt voor het maken van schaduwen, is het niet langer nodig om uw modellen naar een extern programma te exporteren om een nieuw UV-kanaal te maken.
Unreal leest UV-kanalen vanaf 0 (bijvoorbeeld het allereerste UV-kanaal zal zijn Kanaal 0.) We maken een nieuwe kaart naast de bestaande, dus zorg ervoor dat u de UV-kanaal om resultaten op te slaan dropdown naar 1.
Voor nu, verlaat de Beperk maximale uitrekking (0-1) bij de "0.500000" standaardwaarde. Dat leek in het verleden geweldig voor me te werken, en ik heb echt nooit een reden gevonden om het te veranderen. Wanneer u alle instellingen op hun plaats hebt, zoals hieronder wordt weergegeven, raakt u Van toepassing zijn.
Laten we onze resultaten bekijken. Je kunt duidelijk zien dat Unreal een 2e UV-set heeft gemaakt, en nu moeten we Unreal laten weten dat we deze nieuwe UV-set gaan gebruiken voor lichtmapping.
Ga hiervoor naar het veld getiteld Light Map Coordinate-index en stel dat in op het kanaal van onze nieuwe UV-set, dat was 1.
Nu moeten we de resolutie voor onze lichtkaarten instellen. Ga naar het veld getiteld Lichtkaartresolutie en stel dat in op 512, wat ons redelijk goed uitziende schaduwen zou opleveren. (Als we in de toekomst schaduwdetails willen vergroten, kunnen we deze waarde altijd verdubbelen tot 1024.)
Nu is er nog maar één ding over om te doen - laat de motor weten welke van de netten we schaduwen willen ontvangen. De reden dat we specifieke mazen selecteren (en niet alleen de berekening van het licht op alles), is het voorkomen van onnodige verwerking en besparing op de totale bouwtijd. U kunt bijvoorbeeld 50 van dezelfde Meshes in een scène hebben, maar wilt alleen dat 10 zeer gedetailleerde schaduwen met lichtverdeling heeft. U zou deze 10 items toewijzen om schaduwen te ontvangen op basis van uw UV-kaart, en de rest zou worden berekend met behulp van het standaardschaduwsysteem van Unreal.
Het toewijzen van lichtkaarten is heel eenvoudig. Klik met de rechtermuisknop op uw object en open de eigenschappen ervan (of u kunt de snelkoppeling gebruiken F4.) Klik op de StaticMeshActor label en klik in de eigenschappensectie op StaticMeshComponent label.
Hierin zullen we alleen twee dingen aanpassen; Allereerst willen we ervoor zorgen dat Lichte kaarten overschrijven is aangevinkt, en dan willen we de waarde instellen voor de Kaart met overschreven licht veld om overeen te komen met de resolutie van onze UV-kaart, in ons geval 512.
Raak nu de Bouw Licht knop en gebruik dezelfde instellingen als in stap 5 hierboven. Uw uiteindelijke afbeelding zou er ongeveer als volgt uit moeten zien:
En dat is hoe u lichtmapping instelt met alleen de UDK! Ik hoop dat deze demonstratie nuttig was en als je vragen hebt, kun je deze in de reacties hieronder achterlaten!