
Maintenant que nous avons construit
un minimum de brushs sur notre carte, nous allons voir l'intérêt
de mettre un brush en DETAIL ou en STRUCTURE.
Petit retour en arrière, lors de la compilation, il y a 3 phases
majeures qui sont : BSP - VIS -
FLARE.
Le BSP : c'est
la création du fichier "source" dans lequel
le programme (q3map.exe) indique l'organisation et
le placement de tous les brushs avec ses textures. En fait, il hiérarchise
la position exacte de chaque brush, le placement de chaque texture,
c'est en gros, un arbre généalogique sauf que cet arbre
"gère" un espace 3D. Une fois cette
phase terminée, le compileur crée un fichier prt
(qui sera utilisé ensuite pour le procésus VIS)
et notre fichier BSP. Notre fichier BSP
sera par la suite alimenté par
le résultat de la phase VIS et FLARE.
Le VIS : le
processus VIS (pour VISIBILITY)
gère les espaces ainsi créés. Il utilise le fichier
prt précédement crée en phase
BSP pour générer un fichier vis.
La partie importante de ce processus est la consitution du PVS
(Potentiality Visible Set) où il détermine si les différents
espaces sont visibles les uns des autres. Attention, ce PVS
ne fonctionne uniquemment qu'avec des brushs STRUCTURE
combinés à l'ajout de PORTAL. A quoi
sert cette phase ? Tout simplement à alléger l'affichage
dans le jeu et donc, à améliorer le FPS (Frame
Per Second ou image par seconde).
Le FLARE :
Ce processus fonctionne avec le worldspawn. En fonction de l'ambience
de la lumière posée sur la carte, il calcule les effets
de lumière et d'ombre sur chaque face de texture des brushs
et des modèles, génèrent les ombrages etc ...
Voici donc schématiquement
le rôle de chaque phase de la compilation. Histoire de mieux
se faire comprendre, j'ai repris notre première pièce
de maison sur laquelle j'ai retiré la toiture, les modèles,
les lights et coronas pour les besoins de l'explication, tous les
murs sont bien sûr en STRUCTURE. Quand je compile
cette pièce, le compileur génère un seul espace
(en texture CLIP). A
ce niveau, il n'y a pas de problème d'explication, mon joueur
(qui est représenté par le SPAWN DM)
ère dans un seul espace. D'autre part, avec un seul espace,
la taille de mon fichier vis (visdatasize)
reste toute petite.

Je vais compliquer maintenant
cette pièce en ajoutant 2 brushs ( de couleur NOIRE)
qui font offices de mur séparateur dans cette pièce
et qui sont par défaut en STRUCTURE dans l'éditeur.

Si je lance maintenant la compilation,
voici ce que le compileur va générer, non plus 1 mais
4 espaces qui sont
FOLIAGE (1)
- ORIGIN (2)
- CLIP (3)
et HMG (4).
Et là, la taille de mon fichier vis augmente
avec le nombre d'espace (ou leafportals) supplémentaires.

Maintenant, si je donne la
propriété DETAIL à ces 2 murs
et que je recompile, le compileur fait abstraction de ces 2 brushs,
et il génère au final qu'un seul espace. Du coup, la
taille de mon fichier vis (visdatasize)
redescend au plus bas niveau. Attention, cela ne veut pas dire que
l'on peut passer au travers des brushs DETAIL, ceux-ci ne peuvent
pas être traversés par le joueur. Il s'agit simplement
d'une fonction pour le compileur.

Quel enseignement doit-on retenir
de tout cela ? En fait, un brush STRUCTURE splitte
les espaces comme nous avons pu le voir sur ces exemples théoriques.
Son avantage, on le connait, il soulage le moteur du jeu s'il est
combiné avec des PORTAL (dont nous verrons
l'utilité plus loin dans les tutoriaux). De ce fait, le FPS
peut augmenter. L'effet négatif du brush STRUCTURE
est qu'il fait augmenter le visdatasize (qui est
le fichier temporaire avec lequel il procède à la vérification
des espaces et la création de la table PVS.
En conséquence, plus le visdatasize augmente,
plus le temps de compilation est élevé. D'autre part,
le visdatasize à ses limites (environ 2 Mo).
Une fois cette limite dépassée, le compileur ne génère
plus le BSP et donc, adieu votre carte.
Pour remédier à
cela et ainsi baisser la taille de ce fichier, l'autre solution est
d'utiliser la propriété DETAIL. Sa
particularité est qu'elle ne scinde pas les espaces et qu'elle
fait baisser considérablement la taille du visdatasize.
Toutefois, c'est à double tranchant, il faut savoir ce que
l'on fait car le FPS peut s'en ressentir. Ce
qu'il faut retenir de tout cela, c'est qu'il faut mettre en DETAIL
tous les brushs insignifiants (échelle - petit mur - rampe
d'escalier etc ...) et tout brush qui ne peut bloquer la visibilité.
Revenons maintenant à
note carte et lançons la compilation de notre map (tuto_12.map)
où tous les brushs sont en STRUCTURE actuellement
:

Résultat :
291 portalclusters
803 numportals
1 366 numfaces
1 606 actives portals
0 hint portals
Visdatasize : 11 648
ko
Passons à l'action et
mettons tous ces petits brushs en DETAIL.A partir
de la vue 3D, vous allez donc sélectionner
toutes les poutres ainsi que leur socle, l'échelle et son brush
LADDER, les 2 volets extérieurs. Ne doit pas
être sélectionné le sol, les murs des côtés,
la toiture et le plancher du premier étage (3 brushs). Une
fois cette sélection faite, faites un CDS
sur la vue 3D. Normalement, une petite fenêtre
vient de s'afficher. Faites un CGS sur Make
Detail (littéralement faire en Détail).

Tous les brushs se sont désélectionnés
et dans les vues 2D, ils sont maintenant de couleur
VERTE. C'est normal,
c'est la signification qu'ils ont la propriété DETAIL
(à l'inverse, les brushs de couleur NOIRE
sont en STRUCTURE.

Nous allons maintenant filtrer
les brushs DETAIL. Soit par la fenêtre FILTRE
(touche F), décochez alors l'option detail
et cliquez sur le bouton MISE-A-JOUR, soit en utilisant
la combinaison CTRL + D. Résultat, les brushs
DETAIL sont filtrés, il ne reste plus que
les brushs STRUCTURE (pour les afficher de nouveau,
il faudra apppuyer de nouveau sur CTRL + D mais ne
le fait pas de suite).

Occupons-nous maintenant de
notre maison, et mettons aussi les brushs en DETAIL.
Pour cela sélectionnez les volets de fenêtres, les contours
de toits que nous avions coupés ainsi que la cheminée,
la porte et son contour, ainsi que la marche et le petit brush en
texture "plancher" qui se trouve derrière lui. CDS
puis make detail. Notez que nous ne mettons pas les
fenêtres et ses contours en DETAIL puisque
combinées avec le mur, elles permettent de bloquer la visibilité
quand le joueur se trouve dedans.

Lançons de nouveau la
compilation pour voir les changements.

Résultat :
73 portalclusters (au lieu de 291)
174 numportals (au lieu de 803)
295 numfaces (au lieu de 1 366)
348 actives portals (au lieu de 1 606)
0 hint portals (idem)
Visdatasize : 1 176
ko (au lieu de 11 648 ko)
Résultats des courses,
le nombre de leafportals est en forte diminution,
du coup la taille de notre visdatasize est passée
de 11 648 ko à 1 176 ko.
Le fichier de notre tuto 13/.
se trouve ici en format .map. Pour
l'utiliser, à partir du menu FICHIER, sélectionnez
IMPORTEZ (.map) ==> IMPORTEZ NOUVELLE
MAP.

Par
Caskou
- 2005 Copyright © by CaskAmi Prod.
Tout droit réservé.