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

Stappen

  1. 1 Kamers afsluiten. Dit is een must. Als er ELKE lek in de kaart is, kan de compiler de grenzen van de kaart niet bepalen en zal alles in de kaart in één keer worden weergegeven. Erger nog, alle gebiedportalen, hintborstels en occluders op de kaart zullen niet werken, waardoor ze onbruikbaar worden. Water wordt ook niet correct weergegeven als er lekken op de kaart zijn.
    • In figuur 1a is de kamer duidelijk niet verzegeld. Als je deze kaart compileert met dat lek, VVIS (het gedeelte van de compilatie dat de zichtbaarheidsgegevens bepaalt) zal de grenzen van de kaart niet kunnen bepalen, omdat de visbladen alleen maar 'uitlekken' in de zwarte leegte buiten onze kaart.
    • In figuur 1b is de ruimte verzegeld en correct samengesteld.
    • Controleer eerst of er ten minste één entiteit op de kaart staat (bijvoorbeeld een "info_player_start") om te controleren op lekken, anders werkt dit niet. Sla op en compileer de BSP door op F9 te drukken of ga naar Bestand -> Kaart uitvoeren. Selecteer "Normaal" voor Voer BSP uiten selecteer 'Nee' voor beide Voer VIS uit en Voer RAD uit (controleer ook de "Laat het spel niet draaien na het compileren" doos). Als het klaar is met compileren, sluit je het compileerlogboek en ga je naar Kaarten -> Load Point File. Als er lekken zijn, wordt u gevraagd om de handeling te bevestigen (bijv. "Laad standaard pointfile? [C: \ Program Files \ ------>]) Selecteer" Ja ", en u ziet een rode lijn die uit de dichtstbijzijnde entiteit * steekt door het gebied van het lek. (* Daarom moet je een entiteit, penseel of punt, op je kaart plaatsen. Het werkt niet met borstels van wereld- of detailniveau.) Dicht het lek af , compileer de BSP en laad de pointfile. Als alles verzegeld is, zou het gewoon naar een lege map in de Steam \ SteamApps \ gamertag \ GAME \ mapsrc map. Controleer altijd op lekken voordat de kaart voor het publiek wordt vrijgegeven.
  2. 2 Maak penselen met "tools / toolsnodraw". Zorg ervoor dat u altijd penselen maakt met de gereedschappen / toolsnodraw textuur eerst en dan textuur enkel en alleen wat de speler kan zien vanuit het gezichtspunt van de speler. Als je alleen maar een kant van een muur gaat zien, kies dan voor textuur alleen die zichtbare kant.
  3. 3 Verminder het aantal penselen en gezichten. Houd waar mogelijk vast aan het creëren van geometrie met een paar grote borstels in plaats van duizend kleine. Meer penselen staan ​​voor meer gezichten en meer gezichten staan ​​gelijk aan langzamere prestaties en compileertijd. Kort gezegd: als u complexe geometrie met één of twee penselen kunt maken, waarom zou u dan meer dan dat gebruiken?
    • In Fig. 3a zijn er twee borstels: de linker is gemaakt met de Boog gereedschap waarbij een 8-zijdig penseel met 40 vlakken is gemaakt en het rechter vak is gemaakt van een enkele afgeknipte borstel met slechts 11 vlakken. Dit laatste werd bereikt door gebruik te maken van de Clipping Tool (Shift + X). Om dit laatste te bereiken, is het raadzaam om eerst de gewenste geometrische vorm te maken uit de Boog gereedschap eerst ter referentie. Maak vervolgens een penseel met dezelfde lengte, breedte en hoogte als de referentieboog en plaats deze iets boven de referentie. Selecteer het penseel en knip de hoeken. (mogelijk moet u de rastergrootte wijzigen ("-" om te verkleinen, "+" verhogen) en / of de hoekpunten (Shift + V) van de referentieboog handmatig verschuiven om naar het dichtstbijzijnde rasterpunt te snappen.) Nu hebt u een geometrisch identieke borstel, maar alleen met minder gezichten!
  4. 4 Maak goed gebruik van detailborstels. Wereldborstels blokkeren de zichtbaarheid, verzegelen de kaart en splitsen de BSP in "bladeren", wat feitelijk de manier is waarop de compiler bepaalt wat wel en niet op een bepaalde tijd en plaats kan worden gezien. Detailborstels werden ontworpen om in wezen "onzichtbaar" te zijn voor de compiler. De enige penselen die wereldwijde borstels zouden moeten zijn, zijn de muren, de vloer en het plafond van een kamer. Vrijwel al het andere in de ruimte dat geen werkende entiteit is en de visie van de speler niet significant blokkeert, moet worden gekoppeld aan een func_detail penseel (das met Ctrl + T). Omdat detailborstels de zichtbaarheid niet blokkeren, worden ze niet gecompileerd VVIS berekeningen en zal de kaart niet opsplitsen in meer visbladen (wat in de meeste gevallen goed is). Wees echter gewaarschuwd dat het de kaart ook niet zal verzegelen. Zorg er wel voor dat alle wereldborstels de kaart verzegelen en dat er geen problemen mogen zijn.
  5. 5 Gebruik gebiedportals en hintborstels op de juiste manier. Gebiedspoorten en hintborstels zijn geweldige manieren om de zichtbaarheid te beperken en de prestaties te verbeteren als ze correct worden uitgevoerd. U moet deze echter niet in elke gang en elk venster plaatsen, want het bedrag dat moet worden berekend en wanneer zou het zeer goed kunnen overtreffen dat de hele kamer in één keer wordt weergegeven. In plaats daarvan zou u alleen kamers met veel details moeten scheiden. Hierdoor hoeft uw computer niet onnodig veel objecten te maken en de prestaties te verbeteren zonder de zichtberekeningen aanzienlijk te belasten.
  6. 6 Gebruik occluders (spaarzaam). Occluders zijn vergelijkbaar met een portal met een gesloten gebied, omdat het niet maakt wat erachter zit. Het is echter anders dan een gesloten gebied-portal in die zin dat het geen kamer hoeft te verzegelen (het kan vrijstaand zijn en geen wereldborstels raken) en het blokkeert alleen 3D-modellen (ofwel rekwisieten). Deze tool is erg duur in termen van geheugengebruik, dus je zou alleen occluders moeten gebruiken als er een duur 3D-model achter een vrijstaande muur staat die niet door gebiedsportalen kan worden afgesloten.
  7. 7 Voeg 3D Sky-boxes toe. Niet helemaal noodzakelijk, maar het zal ertoe bijdragen dat de kaart er veel groter uit ziet zonder FPS drastisch te vertragen (frames per seconde).3D skyboxen worden meestal gemaakt voor "grote" buitenkaarten, maar het is mogelijk om een ​​binnenkaart te maken als je een buitenkant door een raam of zo kunt zien. 3D skyboxes zijn erg goedkoop om weer te geven en kunnen een kleine kaart tot 16x groter maken, omdat 3D skyboxes op een schaal van 1/16 in Hammer zijn ingesteld en vervolgens tijdens compilatie zijn opgeschaald.
  8. 8 Voeg mist toe. Op grote buitenkaarten kan mist de hoeveelheid detail beperken die wordt weergegeven en kan uw kaart er tijdens het proces realistischer uitzien. Voeg gewoon een toe env_fog_controller entiteit op uw kaart. Op de "Mist inschakelen" optie in de Objecteigenschappen tab, selecteer "Ja". Bewerk vervolgens de Far Z Clip Plane naar uw wens, die alle borstels na die afstand zal verwijderen, waardoor de motor onnodige objecten zal renderen (De Far Z Clip Plane waarde moet groter zijn dan de Mist einde waarde).
  9. 9 Laat je niet gek maken op de Lightmap-schaal. De lichtkaartschaal bepaalt in essentie hoe scherpe of wazige schaduwen worden weergegeven op de geometrie. Grotere aantallen verslechteren de schaduwkwaliteit, maar kunnen de prestaties verbeteren. Omgekeerd verhoogt een lagere lightmapschaal de beelden van de schaduwen, maar kan de prestatie aanzienlijk verminderen. Zowel een te grote als een te kleine lightmapschaal kan een onrealistisch lichteffect produceren dat respectievelijk te saai of te scherp is. De standaard lightmap-schaal voor alle penselen is 16, wat een gebalanceerd gebied is tussen beelden en prestaties.
  10. 10 Als uw kaart water bevat, plaatst u een entiteit "water_lod_control" op de kaart. Deze entiteit bepaalt hoe ver je van "duur" water moet zijn om over te schakelen naar "goedkoop" water. Dure 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 zal goedkoper water produceren op een kortere afstand en zal daarom veel visuele kwaliteit verliezen op afstand, maar ook de prestaties verbeteren.