Een kaart optimaliseren in Hammer Editor: 10 stappen (met afbeeldingen)

Inhoudsopgave:

Een kaart optimaliseren in Hammer Editor: 10 stappen (met afbeeldingen)
Een kaart optimaliseren in Hammer Editor: 10 stappen (met afbeeldingen)
Anonim

Wilt u de prestaties van uw aangepaste kaart versnellen, niet verzanden in haperingen bij het renderen en de compileertijd verkorten? Hier zijn enkele tips om u te helpen elke kaart in Hammer te optimaliseren.

Stappen

Optimaliseer een kaart in Hammer Editor Stap 1
Optimaliseer een kaart in Hammer Editor Stap 1

Stap 1. Sluit kamers af

Dit is een must. Als er ENIGE lekken in de kaart zijn, kan de compiler de grenzen van de kaart niet bepalen en zal hij proberen alles in de kaart in één keer weer te geven. Erger nog, alle gebiedsportalen, hintborstels en occluders op de kaart zullen niet werken, waardoor ze nutteloos zijn. Ook wordt water niet correct weergegeven als er lekken in de kaart zijn.

  • In figuur 1a is de ruimte uiteraard niet afgesloten. Als je deze kaart samenstelt met dat lek, vvis (het deel van de compilatie dat de zichtbaarheidsgegevens bepaalt) zal niet in staat zijn om de grenzen van de kaart te bepalen, omdat de visbladeren gewoon "lekken" in de zwarte leegte buiten onze kaart.
  • In Fig. 1b is de ruimte verzegeld en zal deze correct worden samengesteld.
  • Om te controleren op lekken, moet u eerst controleren of er ten minste één entiteit op de kaart staat (zoals een "info_player_start"), anders werkt dit niet. Bewaar en compileer de BSP door op F9 te drukken of naar Bestand -> Kaart uitvoeren te gaan. Selecteer "Normaal" voor BSP uitvoerenen selecteer "Nee" voor beide Voer VIS. uit en RAD. uitvoeren (controleer ook zeker de "Voer het spel niet uit na het compileren" doos). Als het compileren klaar is, sluit u het compileerlogboek en gaat u naar Map -> Load Point File. Als er lekken zijn, wordt u gevraagd om de bewerking te bevestigen (bijv. "Load default pointfile? [C:\Program Files\----]) Selecteer "Ja", en u ziet een rode lijn uitsteken van de dichtstbijzijnde entiteit* naar buiten door het gebied van het lek (*daarom heb je een entiteit nodig, ofwel penseel of punt, in je kaart. Het werkt niet met wereld- of detailpenselen.) Dicht het lek af, compileer de BSP, en laad de pointfile. Als alles verzegeld is, zou het gewoon naar een lege map in de moeten gaan Steam\steamapps\GAMERTAG\GAME\mapsrc map. Controleer altijd op lekken voordat de kaart openbaar wordt gemaakt.
Optimaliseer een kaart in Hammer Editor Stap 2
Optimaliseer een kaart in Hammer Editor Stap 2

Stap 2. Maak penselen met "tools/toolsnodraw"

Zorg ervoor dat je altijd penselen maakt met de tools/toolsnodra eerst textuur en dan alleen textuur wat de speler kan zien vanuit het gezichtspunt van de speler. Als je maar één kant van een muur gaat zien, structureer dan alleen die zichtbare kant.

Optimaliseer een kaart in Hammer Editor Stap 3
Optimaliseer een kaart in Hammer Editor Stap 3

Stap 3. Verminder het aantal penselen en gezichten

Blijf waar mogelijk bij het creëren van geometrie met een paar grote penselen in plaats van duizend kleine. Meer borstels staat gelijk aan meer gezichten, en meer gezichten staat gelijk aan tragere prestaties en compileertijd. Waar het op neerkomt: als u complexe geometrie kunt creëren met een of twee penselen, waarom zou u dan meer gebruiken?

In Fig. 3a zijn er twee penselen: die aan de linkerkant is gemaakt met behulp van de Arch Tool die een 8-zijdige borstel met 40 vlakken heeft gemaakt, en die aan de rechterkant is gemaakt van een enkele geknipte borstel met slechts 11 vlakken. Dit laatste werd bereikt door gebruik te maken van de Clipping Tool (Shift + X). Om dit laatste te bereiken, wordt aanbevolen om eerst ter referentie eerst de gewenste geometrische vorm uit de Arch Tool te maken. Maak vervolgens een penseel met dezelfde lengte, breedte en hoogte als de referentieboog en plaats deze iets boven de referentie. Selecteer de borstel en knip de hoeken. (mogelijk moet u de rastergrootte wijzigen ("-" om te verkleinen, "+" om te vergroten) en/of handmatig de hoekpunten (Shift + V) van de referentieboog verplaatsen om naar het dichtstbijzijnde rasterpunt te snappen.) Nu hebt u een geometrisch identiek penseel, maar alleen met minder gezichten

Optimaliseer een kaart in Hammer Editor Stap 4
Optimaliseer een kaart in Hammer Editor Stap 4

Stap 4. Maak goed gebruik van detailpenselen

Wereldborstels blokkeren de zichtbaarheid, verzegelen de kaart en splitsen de BSP in "bladeren", die in feite de manier zijn waarop de compiler bepaalt wat wel en niet kan worden gezien op een bepaald moment en op een bepaalde plaats. Detailpenselen zijn ontworpen om in wezen "onzichtbaar" te zijn voor de compiler. De enige borstels die wereldborstels zouden moeten zijn, zijn de muren, de vloer en het plafond van een kamer. Vrijwel al het andere in de kamer dat geen werkende entiteit is en het zicht van de speler niet significant blokkeert, moet worden gekoppeld aan een func_detail-borstel (binden met Ctrl + T). Omdat detailpenselen de zichtbaarheid niet blokkeren, worden ze niet gecompileerd in vvis berekeningen en zal de kaart niet in meer visbladeren splitsen (wat in de meeste gevallen goed is). Wees echter gewaarschuwd dat het de kaart ook niet zal verzegelen. Zorg er gewoon voor dat alle borstels van de wereld de kaart verzegelen en dat er geen problemen zouden moeten zijn.

Optimaliseer een kaart in Hammer Editor Stap 5
Optimaliseer een kaart in Hammer Editor Stap 5

Stap 5. Gebruik gebiedportalen en hintborstels op de juiste manier

Gebiedsportalen en hintborstels zijn geweldige manieren om de zichtbaarheid te beperken en de prestaties te verbeteren als ze correct worden uitgevoerd. Je moet deze echter niet in elke gang en elk raam plaatsen, omdat het bedrag om te berekenen wat er moet worden weergegeven en wanneer heel goed hoger kan zijn dan dat van het gewoon in één keer weergeven van de hele kamer. In plaats daarvan moet je alleen kamers met veel details scheiden. Dit voorkomt dat uw computer veel onnodige objecten hoeft weer te geven en helpt de prestaties te verbeteren zonder de zichtbaarheidsberekeningen zwaar te belasten.

Optimaliseer een kaart in Hammer Editor Stap 6
Optimaliseer een kaart in Hammer Editor Stap 6

Stap 6. Gebruik occluders (spaarzaam)

Occluders zijn vergelijkbaar met een portaal met een gesloten gebied, omdat het niet weergeeft wat erachter zit. Het is echter anders dan een gesloten gebiedsportaal omdat het een kamer niet hoeft af te sluiten (het kan vrijstaand zijn en geen wereldborstels raken) en het blokkeert alleen 3D-modellen (ook wel rekwisieten genoemd). Deze tool is erg duur in termen van geheugengebruik, dus gebruik occluders alleen als er een duur 3D-model achter een vrijstaande muur staat die niet kan worden afgesloten door areaportals.

Optimaliseer een kaart in Hammer Editor Stap 7
Optimaliseer een kaart in Hammer Editor Stap 7

Stap 7. Voeg 3D Sky-boxen toe

Niet helemaal nodig, maar het zal helpen om de kaart veel groter te laten lijken zonder de FPS (frames per seconde) drastisch te vertragen. 3D-skyboxen zijn meestal gemaakt voor "grote" buitenkaarten, maar het is mogelijk om het voor een binnenkaart te maken als je een buitenkant kunt zien door een raam of zoiets. 3D-skyboxen zijn erg goedkoop om te renderen en kunnen een kleine kaart tot 16x groter laten lijken, aangezien 3D-skyboxen in Hammer zijn ingesteld op een schaal van 1/16 en vervolgens worden opgeschaald tijdens het compileren.

Optimaliseer een kaart in Hammer Editor Stap 8
Optimaliseer een kaart in Hammer Editor Stap 8

Stap 8. Voeg mist toe

Op grote buitenkaarten kan mist de hoeveelheid detail die wordt weergegeven, beperken en kan uw kaart er tijdens het proces realistischer uitzien. Voeg eenvoudig een env_fog_controller-entiteit toe aan uw kaart. Op de optie "Mist inschakelen" in de Objecteigenschappen tabblad, selecteer "Ja". Bewerk vervolgens de Far Z Clip-vliegtuig naar uw wens, die alle borstels na die afstand zal verwijderen, waardoor de engine geen onnodige objecten weergeeft (The Far Z Clip-vliegtuig waarde moet groter zijn dan de Mist einde waarde).

Optimaliseer een kaart in Hammer Editor Stap 9
Optimaliseer een kaart in Hammer Editor Stap 9

Stap 9. Laat je niet gek maken op de Lightmap Scale

De schaal van de lichtkaart bepaalt in wezen hoe scherpe of wazige schaduwen op geometrie worden weergegeven. Grotere aantallen verslechteren de schaduwkwaliteit, maar kunnen de prestaties verhogen. Omgekeerd verhoogt een lagere lichtkaartschaal de beelden van de schaduwen, maar kan de prestatie aanzienlijk verminderen. Een te grote of een te kleine lichtkaartschaal kan een onrealistisch lichteffect produceren dat respectievelijk te dof of te scherp is. De standaard lichtkaartschaal voor alle penselen is 16, wat een evenwichtig gebied is tussen visuals en prestaties.

Optimaliseer een kaart in Hammer Editor Stap 10
Optimaliseer een kaart in Hammer Editor Stap 10

Stap 10. Als je kaart water heeft, plaats dan een "water_lod_control" entiteit in de kaart

Deze entiteit bepaalt hoe ver je moet zijn van "duur" water om over te gaan naar "goedkoop" water. Duur water ziet er veel realistischer uit dan goedkoop water en kost daarom meer in termen van geheugengebruik en berekeningen op de computer. Een kortere overgangsafstand levert op kortere afstand goedkoper water op en zal daarom veel visuele kwaliteit verliezen op afstand, maar zal ook de prestaties verhogen.

Tips

  • Verplaatsingen blokkeren het zicht niet, dus om ervoor te zorgen dat de kaart is verzegeld, maakt u een wereldborstel met de tools/toolsnodra textuur onder de verplaatsing en verzegel de kaart ermee (d.w.z. laat de hoeken van die borstel de hoeken van de skybox raken). Zorg er, net als in de eerste stap, altijd voor dat de kaart verzegeld is, anders wordt vrijwel elke genoemde optimalisatietechniek uit het raam gegooid en in de zwarte leegte van de Source-engine.
  • Bij het maken van gebiedsportalen (door een penseel te maken met textuur met tools/toolsareaportal en door het te koppelen aan func_areaportal), is het erg belangrijk dat de zijkanten van een areaportal waar niet doorheen wordt bekeken, wereldborstels raken. Als u bijvoorbeeld een gebiedsportaal in een deuropening wilt plaatsen, maar die deuropening heeft een frame dat is gekoppeld aan func_detail, zou u niet laat de areaportal-borstel het deurframe raken omdat het func_detail is (en aangezien func_detail-borstels de zichtbaarheid niet beïnvloeden, komt het compileerlogboek terug met een lek). In plaats daarvan moet de gebiedportalborstel de muren, het plafond en de vloer van de deur raken (die allemaal wereldborstels moeten zijn), en het deurframe kruisen. Maak je geen zorgen dat er "z-clipping" rond het deurkozijn kan zijn; het frame wordt nog steeds correct weergegeven in het spel… het is gewoon aanwezig in de Hammer-editor voor de compiler om te gebruiken tijdens vvis.
  • Dit artikel gaat ervan uit dat je basiskennis hebt van de interface van Hammer Editor (penselen maken, entiteiten plaatsen, entiteiten koppelen, enz.).
  • Wanneer u hintpenselen maakt, structureert u alleen de gezichten die als hintvlakken fungeren (de gezichten die de BSP splitsen) met de gereedschap/gereedschapshint textuur. Textuur elk ander gezicht op het penseel dat niet als een hintvlak fungeert met gereedschap/toolskip, anders maakt u meer visleafs dan u wilt.
  • U kunt de Open/Gesloten status van een gebiedsportaal koppelen aan een werkende deur zoals een func_door, func_door_rotating of een soortgelijke entiteit. Hiervoor heeft de deur waar je het gebiedsportaal naar wilt linken een unieke "naam" nodig. (Geef de naam door te dubbelklikken op de deur om de deur te openen) Objecteigenschappen venster en geef het een eenvoudige naam onder Naam in de Class Info tab.) Zodra je de naam van de deur hebt, ga je naar de areaportal's Objecteigenschappen en scroll naar beneden naar "Naam van gekoppelde deur" en selecteer de deur waaraan je het gebiedportaal wilt koppelen. Ook (en dit is erg belangrijk) moet je de Oorspronkelijke toestand van het gebiedsportaal naar de Oorspronkelijke toestand van de deur. Dit zorgt ervoor dat wanneer de deur gesloten is, het gebiedsportaal mee sluit. Als je nieuwsgierig bent naar wat de Open/Gesloten gebiedsportaalstatussen precies dicteren, als een gebiedsportaal Open is, worden alle bladen weergegeven die zichtbaar zijn aan de andere kant van het gebiedsportaal. Omgekeerd, als het gebiedsportaal Gesloten is, wordt er niets buiten het gebiedsportaal weergegeven. Dus als er een open gang is waar je altijd in kunt kijken, is de Oorspronkelijke toestand van het gebiedsportaal moet worden ingesteld op Open, niet op Gesloten. En wanneer gekoppeld aan een deur, kun je toch niet voorbij de deur kijken, dus zet deze op Gesloten als de deur dicht spawnt (tenzij het een transparant venster heeft, dan zou je het gebiedsportaal op Openen moeten hebben en don niet eens de moeite nemen om het aan de deur te koppelen).

Waarschuwingen

  • Maak nooit een ingewikkeld penseel met de Hollow Tool. De hoekpunten (hoeken van de borstels) zullen elkaar kruisen en zullen gewoon een grote slordige puinhoop creëren.
  • Gebruik occluders alleen als laatste redmiddel. Het is erg geheugenintensief, dus als een prop kan worden verzegeld in een kamer met areaportals of als het mogelijk is om de visleaves te splitsen met hints en brushes, kies dan voor het gebruik van occluders.
  • Open areaportals zijn veel geheugenintensiever omdat de visleaves in realtime worden berekend. Het is aan te raden om zo vaak mogelijk gesloten areaportals of hint brushes te gebruiken.

Aanbevolen: