Hint-perish - comunitatea dezvoltatorilor de supape

Planurile de indiciu sunt folosite pentru a tăia frunzele în procesul de compilare și sunt un instrument de optimizare în stadiul de compilare Vis a hărții.







De obicei, acestea sunt denumite perii obișnuite. deoarece acestea sunt plasate în lumea hărții ca perii obișnuite. Planurile de indiciu sunt definite de partea periei, acoperită cu uneltele / uneltele de textură. Mai multe suprafețe de indiciu sunt definite de câteva fețe colorate ale uneia sau mai multor perii. Celelalte laturi ale periei pot fi acoperite cu uneltele / toolskip; aceste chipuri vor fi ignorate de compilator.

Sugestiile se atașează automat la grupul lor de vizite. pentru a le putea ascunde ușor.

De ce și când să taie frunzele

Notă: Studierea muncii frunzelor vă va ajuta să înțelegeți acest articol.

Uneori, unele forme de frunze sunt preferabile altora doar pentru că sunt mai mici decât ele. De fiecare dată când o foaie nu este vizibilă, conținutul ei nu este desenat, grăbind grafica.

Următoarele ilustrații arată importanța tăierii frunzelor și, în același timp, oferă exemple de sugestii în care sunt utile sugestiile.

Primul exemplu este aproape la fel ca pe SDK. Aceasta este o cameră cu jucători și țevi, împărțită pe un perete:

Hint-perish - comunitatea dezvoltatorilor de supape

Exemplu de hartă sdk_hints.vmf, care arată jucătorii din stânga și modelele din dreapta, separate de un perete.

Când jucătorul se află într-una din cele două stări de jucător, motorul trebuie să decidă care perii (țevi) din dreapta peretelui trebuie desenate. Acest lucru se datorează faptului că vbsp.exe nu poate diviza în mod eficient harta dvs. în frunze:

Hint-perish - comunitatea dezvoltatorilor de supape

Fără sugestii, vbsp creează frunze până la tavan.

Deoarece frunzele sunt foarte înalte și se extind până la tavan, foaia din partea stângă (cu jucători) "văd" direct foaia cu țevile din dreapta. Astfel, foaia și conținutul (țevile) vor fi extrase. Acest lucru este ofensator, deoarece jucătorul nu vede direct conductele (acestea sunt în spatele zidului din centru). Folosim sugestii pentru a arăta procesul de creare a frunzelor.

Hint-perish - comunitatea dezvoltatorilor de supape

Un indiciu orizontal creează mai multe frunze, iar două coli pe fiecare parte a peretelui nu se vor vedea reciproc.

Linia albă este partea periei cu uneltele / uneltele pentru texturi. Ea obligă vbsp să ne împartă harta în trei foi. Acum nu există o linie dreaptă între frunze și jucători. Aceasta este esența hintului.

Skybox-urile sunt uneori supraevaluate, astfel încât un jucător să poată vedea toate clădirile dintr-un oraș pe o singură coală (ca în exemplul nostru). Aceasta este, de asemenea, o situație bună atunci când puteți folosi sugestii pentru a limita vizibilitatea.

Sugestii pentru unghiuri

Hint-perish - comunitatea dezvoltatorilor de supape






Fără sugestii, în această cameră orice unghi va fi redat atunci când stați în colțul opus.

Aceasta este o vedere de sus a unui unghi tipic. Există doi jucători la capete diferite (pătrat verde) și cilindri, care sunt o mulțime de materiale pentru desen. În acest caz, scopul de a sugera este să evite desenarea obiectelor inutile, adică Când jucătorul se află în jurul colțului în raport cu obiectele.

S-ar putea crede că vbsp este convins că jucătorii nu văd obiecte aparținând altui jucător. Nu e așa. El va împărți acest spațiu în două frunze sau va tăia frunzele de-a lungul liniei maro sau roz (în funcție de partea periei).

În ambele cazuri, ambele coli unghiulare se văd direct, astfel încât conținutul fiecărui colț să fie desenat în celălalt colț.

Hint-perish - comunitatea dezvoltatorilor de supape

Adăugarea unei pensule de colț va crea un unghi pe foi, astfel încât să nu se mai văd unul pe celălalt.

Această situație poate fi mult îmbunătățit, și cota de nivelul nostru pe trei foi, plasarea aluzie la un unghi (creând un total de trei foi în loc de două), dar numai după ce se asigură că obiectele de un singur jucător nu va fi vizibil pentru ceilalți.

Nu există vizibilitate directă între foile de culoare roșie și brună, evitând redarea inutilă. Cu toate acestea, dacă un jucător se duce la foaia verde, îi va vedea pe amândoi - și obiectele lui și ale altor persoane. Nu puteți opri acest lucru cu sugestii. Acest lucru se poate face fie prin remodelarea aspectului nivelului, fie prin utilizarea unor metode descrise, de exemplu, în Controlul vizibilității geometriei și a timpului de compilare.

Mai multe exemple

Hint-perish - comunitatea dezvoltatorilor de supape

Diferite moduri de a utiliza sugestii. Lucrările - nu funcționează - nu funcționează, nu sunt necesare sugestii - nu sunt necesare sugestii.

Iată câteva exemple de unde și cum să folosiți sugestii. În toate cazurile, obiectivul este de a ascunde jucătorii verzi unul de celălalt. Primele trei funcționează așa cum ar trebui. Ilustrația din stânga arată că, atâta timp cât unghiul de indiciu Bras> 180 °, jucătorii nu vor „vedea“ vecinul pleacă pentru că nu există nici o linie directă de vedere între frunzele lor. Exemplul din stânga jos arată ce se întâmplă dacă unghiul este mai mic de 180 °. Este ușor să desenați o linie dreaptă de la foaie la foaie, ceea ce duce la indicii non-de lucru.

Atunci când unghiul din coridor este de 180 °, la fel ca în imaginea de mijloc superioară, vor fi suficiente două indicii. De fapt, ele pot fi chiar mai aproape de jucători, dar acest lucru ar reduce eficacitatea lor ("la colț" va fi atras mai mult material). În exemplul inferior din mijloc, sugestiile au fost scrise mai jos și vbsp este forțat să taie foaia de vizită la vârf, deoarece foile de vizibilitate nu pot fi concave. Indiferent de modul în care vbsp taie acest unghi, indicii vor funcționa întotdeauna mai puțin eficient și vor crea coli suplimentare (mai multe lucrări pentru vvis). De exemplu, jucătorul din stânga poate vedea foile 1 și 2 (aceleași suprafețe ca mai sus), dar jucătorul potrivit va vedea toate cele trei foi numerotate (mai mult decât în ​​exemplul superior).

Cele două imagini corecte arată lucruri simplificate. De preferință, există un indiciu, ca în exemplul superior. Și, evident, sugestiile nu ar trebui folosite atunci când nu sunt necesare, ca în imaginea de jos. După cum se vede, vbsp nu poate crea frunze care să permită ambii jucători pentru a vedea reciproc, astfel încât nu este necesară utilizarea de indicii (desigur, indicii pot fi folosite pentru a acoperi o parte a coridorului). În același exemplu, peretele de mijloc nu ar trebui să fie în nici un caz un detaliu îngrozitor. Detaliile geometrice nu creează o listă vis-à-vis și sunt ignorate de vvis. El va crede că jucătorii se văd unul pe celălalt, iar asta nu este ceea ce avem nevoie. vbsp poate asigura chiar că ambii jucători se află pe aceeași foaie.

În general, deoarece indicii nu au un efect direct asupra randării în timpul jocului, cu o utilizare adecvată, acestea sunt principala modalitate de a vă accelera harta și de a controla vizibilitatea.

Sugestii pentru simplitate

În cele din urmă, sugestiile pot fi utilizate pentru a simplifica harta. Uneori vbsp taie frunzele mai mult decât este necesar. Aceasta crește timpul de compilare. Sugestiile pot fi folosite pentru a contracara acest lucru. De exemplu, sugestiile pot fi plasate în ușă pentru a preveni tăierea încăperilor pe care le conectează. Sau, de exemplu, dacă primiți un mesaj de eroare că o anumită listă de vizite formează prea multe alte liste, indicii pot fi utilizați pentru a reduce numărul de colțuri.

Notă: foile de vizibilitate sunt tăiate întotdeauna la fiecare 1024 unități (linii roșii și albastre în ferestrele cu vedere la 2D).

  • sourcesdk_content \ hl2 \ mapsrc \ sdk_hints.vmf este un exemplu de hartă inclusă în SDK-ul sursă.






Trimiteți-le prietenilor: