Tutorials - Livello base

Q3 Structural vs. Detail Brushes



      INDEX


1. Importanza della differenza

2. Uso dei Brushes

3. Il carico computazionale

4. Short Cuts

NB. Tutorial valido solo per i giochi basati sul motore Q3

Nei motori dell'ultima generazione (per esempio quello di DOOM3) la differenza fra Detail & Structural Brushes è stata resa inoperativa. In altre parole, il tipo di brush impiegato è irrilevante per la BSP e la VIS va definita dagli elementi volumetrici assieme a di un nuovo tipo di brush chiamato Visportal.



































































Entrambe le immagini sono state ottenute con il Plugin 'Portal Wiever' di GTK Radiant 1.4 per SoF2, che riporta i dati registrati nel file .prt prodotto dalla BSP.

E' immediatamente evidente come nel caso a sinistra (cassa costruita con uno Structural brush) la BSP abbia suddiviso lo spazio intorno alla cassa (piani colorati in trasparenza), creando dei nodi del tutto inutili e giustamente assenti nel caso a destra, dove la cassa è stata costruita con un Detail Brush.





































Ps. Nonostante questo tutorial richieda una qualche conoscenza preliminare sul funzionamento di un motore 3D, è stato comunque inserito nella sezione Basic Tutorials perché la distinzione fra Structural e Basic Brushes deve essere nota fin dall'inizio, al fine di evitare errori macroscopici il cui risanamento richiederebbe un lungo e tedioso lavoro di riconversione degli elementi volumetrici dell'intera mappa.

Q3 Structural vs. Detail Brushes      


1. Importanza della differenza

In questo tutorial vedremo la differenza fra Structural Brushes e Detail Brushes nei videogiochi basati su Q3. Si tratta di una diferenza molto importante, perché dal corretto impiego di questi due diversi tipi di brushes dipendono in parte le caratteristiche tecniche essenziali di una mappa. Riassumiamo queste caratteristiche nei seguenti punti:

  a. assenza di Leaks;

  b. velocità di Compilazione;

  c. peso complessivo del file;

  d. performance di gioco in termini
     di "r_speeds".


- Vediamo le differenze fra Structural e
Detail Brushes nell'animazione qui accanto >


2. Usi dei due tipi di Brush

Structural e detail brushes hanno dunque usi differenti. I primi sono indispensabili per 'sigillare' il worldspawn e quindi andranno usati per costruire lo skybox, ovvero le strutture che conformano il perimetro, il suolo e il tetto della mappa (se una qualsiasi di queste posizioni fosse occupata da un Detail Brush, ne risulterebbe un Leak). Inoltre, gli Structural Brushes potranno essere usati all'interno della mappa per le strutture principali: i muri, i solai etc., quando si rende necessario mettere determinate aree fuori dalla portata del motore, perché non visibili dal giocatore dall'area in cui si trova. In ogni caso, una volta costruito lo skybox, un buon metodo è andare avanti costruendo l'interno integralmente con detail brushes, e solo in un secondo momento convertire in Structural quei brushes che ci tornano utili.

I Detail Brushes vanno usati invece per costruire le strutture interne di modeste o piccole dimensioni (scale, colonne, casse etc.) perché, dal momento che non vengono presi in considerazione dalla BSP e quindi nemmeno dalla VIS, il loro volume non provoca la segmentazione dello spazio in aree, e dunque il motore non è costretto a operare tutta una serie di calcoli inutili che finirebbero per appesantire la mole dei dati, rallentare il tempo di compilazione e abbassare il numero di FPS in gioco.

Approfondiremo questi aspetti nel tutorial sullo Hinting. Ora mettiamo a confronto due stanze, con dentro una singola cassa: la prima (a Sx) costruita integralmente con Structural Brushes, compresa la cassa; la seconda (a Dx) costruita seguendo il metodo ora descritto. Ne analizzeremo le differenze monitorando i dati forniti dal Junk per l'una e per l'altra nella colonna in mezzo:
Il tuo browser non supporta i java! Non hai pensato a procurartene uno un po' più moderno ?



3. Il carico computazionale

Dando una occhiata ai dati dei rispettivi Junks, le differenze sul piano del carico computazionale saltano immediatamente agli occhi: lo structural brush piazzato in mezzo alla stanza ha generato 42 piani (faces) rilevanti per il processo di computo, contro i soli 6 (quelli della stanza, appunto) del Detail brush. Ciò ha dato luogo alla formazione di 7 portals, (6 più del necessario), che per di più, date le ridotte dimensioni della stanza, sono dei "tiny portals" (portals di infime dimensioni da eliminare assolutamente). Per quanto riguarda il calcolo della Visibilità, abbiamo parimenti 28 Visportals, tutti inutili trattandosi di una singola stanza.

Riasumendo, un errore di questo tipo porta a un incremento esponenziale del carico di computo e dunque a uno sperpero delle risorse computazionali, tutto a discapito delle prestazioni. Per evitarlo basta seguire il metodo descritto in questo tutorial.
Finiamo con alcune scorciatoie da tastiera, utili per velocizzare il lavoro.



4. Short Cuts

L'Editor offre strumenti per l'ispezione differenziata, cioè visualizza o filtra gli Structural e/o i Detail Brushes a seconda delle esigenze. Queste funzioni possono essere attivate dal menù, oppure usando le seguenti scorciatoie da tastiera:

      - Ctrl+M (Make Detail): converte in Detail uno Structural Brush;
      - Maiusc+Ctrl+S (Make Structural):converte in Structural un Detail Brush;
      - Ctrl+D (Filter Detail):nasconde i Detail Brushes;
      - Maiusc+Ctrl+D (Filter Structural): nasconde gli Structural Brushes.



Ok. Questo è quanto. Se qualcosa non ti è chiaro, non esitare a postare le tue domande nel nostro Forum.

Q3 Structural vs. Detail Brushes
Tutorial by -XTX- CARNUFEX for HG&LD
- 22 nov. 2004 - Aggiornato il 26 novembre 2005