Le
moteur Quake III a la fâcheuse tendance à afficher
toutes les textures, que se soit dans des bâtiments avec
ouvertures (fenêtres...)voire celles qui seraient cachées
derrière un mur dans un endroit "ouvert" ou "extérieur".
Ainsi la carte graphique affiche des textures que le joueur ne
peut voir, le FPS s'en ressent donc considérablement.
C'est
là que rentre en jeu les brushs "VIS" en "Leaf
Groups". Cette fonction indique au moteur de ne pas afficher
des endroits qui ne peuvent être vus pas le joueur manuellement.
Je m'explique, lorque le joueur se trouve à un endroit
sur la carte, il est possible de forcer le non-affichage de textures
au moteur.
La
fonction est simple : il suffit de créer au minimum 2 espaces
à l'aide de brush avec la texture « VIS » (la
texture se trouve dans le répertoire "COMMON").
Dans l'exemple suivant, j'ai créé 4 brushs que j'ai
mis en texture "VIS" et que j'ai positionné de
manière à ce qu'ils "englobent" un bâtiment
entier.
Mon premier
"VIS" englobe un brush à carreaux noir et blanc
(important pour la démonstration plus tard)
Mon second "VIS" englobe le bâtiment de gauche.
Mon troisième "VIS" englobe le bâtement
du milieu.
Mon quatrième "VIS" englobe le bâtiment
de droite.
Ci
dessous, ce sont les brushs transparents bleus clairs :
Maintenant,
j'ai attribué à ces brushs "VIS"
la fonction "leaf group" en leur donnant aussi
un nom.
J'ai
sélectionné le premier brush, et j'ai appuyé
sur la touche "N" pour appeler la fenêtre d'entité
(c'est par là que l'on donne l'instruction au moteur).
Maintenant, dans la liste en haut, j'ai descendu tout en bas pour
double clicker sur l'entité "vis-leafgroup",
l'information est alors reportée dans la fenêtre
inférieure
==>
classname : vis-leafgroup.
Je lui ai donné
un nom. Pour cela, juste au dessous de cette fenêtre
dans la zone en face de "Key" : ==> targetname
dans la zone en face de "Value" : ==> vis1
puis
touche "entrée" pour valider
et
j'ai répété l'opération pour les 3 autres
brushs.
C'est
là que nous arrivons à la partie la plus complexe.
J'ai pris mon brushs "VIS" nommé vis1 (celui
qui englobe les textures à carreaux noirs et blancs)
et je l'ai lié aux brushs nommés "vis2"
(le bâtiment de gauche) et "vis4" (bâtiment
de droite). Pour faire ce lien, il suffit de taper, toujours
en bas :
dans
la zone en face de "Key" :
==> target (<== indique que c'est la cible)
dans
la zone en face de "Value" :
==> vis2 (<== le nom de la cible) puis touche
"entrée" pour valider et dans la zone en
face de "Key" : ==> target
(<== indique que c'est la cible)
dans
la zone en face de "Value" :
==> vis4 (<== le nom de la cible) puis touche
"entrée" pour valider Que ce passe t-il ?
l'éditeur
m'indique par des traits bleus que mon brush "vis1"
est en leaf group avec le brush "vis2" et "vis4".
CELA
LUI INDIQUE QUE LORSQUE JE SUIS DANS LE BRUSH "vis1",
LE MOTEUR N'AFFICHE PAS LES TEXTURES QUI SE TROUVENT DANS
LES BRUSHS "vis2" ET "vis4".
La
démonstration n'est pas finie. Je peux très
bien utiliser le brush "vis2" et indiquer au moteur
de ne pas afficher le brush "vis4".
Pour
cela, je sélectionne le brush "vis2", touche
"N" et je tape : dans la zone en face de "Key"
: ==> target (<== indique que
c'est la cible)
dans la zone en face de "Value" :
==> vis4 (<== le nom de la cible)
LE
RESULTAT SERA LE MEME, QUAND JE SERAI DANS LE BRUSH "vis2",
LE MOTEUR N'AFFICHERA PAS LES TEXTURES DU BRUSH "vis4".
Vous
voulez être sûr de ce que j'avance ??? Mattez
donc : Ici, je me trouve en dehors du brush "vis1"
(qui englobe mes carreaux noirs et blancs.

Maintenant,
je rentre dans le brush "vis1" :
Le
moteur suit mes instructions et fait disparaitre les textures
dans les brushs "vis2" et "vis4" !!!
Par
Caskou
2003
- Copyright © by CaskAmi Prod. Tout droit réservé.
|
Page
générée en
$time = microtime();
$time = explode(" ",$time);
$time = $time[1] + $time[0];
$endtime = $time;
$totaltime = ($endtime - $startime);
echo ''.number_format($totaltime,4,',',''),' secondes'; ?>
|