Voici
donc une réalisation très rapide d'un
complexe intérieur (car oui, les "Hint"
fonctionnent surtout en intérieur mais peuvent
aussi fonctionner en extérieur, mais selon des
configurations bien précises qu'il est difficile
d'aborder ici. J'ai donc créé deux pièces,
une petite où il y a un sherman (au à
gauche) et une grande pièce où on y retrouve
oplusieurs King Tigers (bas à droite).
Je
ne vous apprends rien quand je vous dis que le compileur
génère en fait des espaces (représentés
par mes brushs de différentes couleur ici et
qui sont là uniquement pour la démonstration)
où le joueur progresse. C'est en sorte un arbre
généalogique d'espace, mais en 3 dimensions.
Ainsi, selon la manière de créer sa map,
le compileur positionne lui-même ces espaces (appelés
leafs-portals). Aussi, et selon le type de compilation
effectué on peut avoir 2 possibilités
de résultat :
En
fast :
le
compileur génère tous les leafs portals
et ils sont tous visibles, ne n'importe qu'elle point
de la map, même si vous dans une maison close
complètement.
En
Full (VIS complet) :
le
compileur génère tous les leafs portals
mais effectue une vérification pour chacun des
leafs portal. C'est à dire que pour un espace,
il va vérifier si à partir de celui-ci,
on peut voir ou pas d'autres espaces. Ainsi il écrit
dans une table appelée PVS (Pontential Visibility
Set si ma mémoire est bonne) toutes ces informations
à savoir si de cet endroit il voit ou pas tel
ou tel espace. Ainsi, une fois terminé, lorsque
vous vous baladez dans votre map, il sait s'il doit
afficher ou non les leafs portals et par la même
occasion les textures qu'il comportent.
Voici
donc un exemple imaginaire de la réaction du
compileur

Quand
je me positionne dans le leaf rouge (où vous
pouvez voir un info start), de cette position, je vois
la grande pièce jaune, donc le moteur affiche
tous ce qu'il y a dedans. Vous allez me dire "non,
il y a un mur là, je vois rien.
Regardez
donc (utilisation du mode développeur ==>
r_showtris 2):
Là,
je suis l'info start en haut à gauche :

Là,
je suis l'info start dans le milieu:

Surprenant
non !!! En fait, si vous regardez bien le leaf portal
rouge, il apperçoit le vert et le jaune, peut
importe où le joueur se trouve dans ce leaf rouge,
il n'en tient pas compte.
Maintenant,
il est tout à fait possible de gérer manuellemnt
la position des leafs portals en utilisant des brushs
"HINT"
Sur ce screen, le brush HINT est représenté
de couleur BLEU pour mieux le faire resortir

Dans
cette configuration, lorsque je suis dans le leaf rouge,
je vois bien sûr le bleu mais pas au delà,
du coup, j'économise l'affichage du reste des
leafs. Notez que même en compilation FAST, le
compileur tient compte de cela.
Même
chose que précédemment :
Maintenant,
je ne vois plus la pièce du fond avec les chars

Et
là, le Sherman ne s'affiche plus non plus !!!
A
quoi ça sert donc les Hint, et bien tout simplement
à améliorer le FPS. Attention, leur utilisation
n'est pas aussi simple que cet exemple, il faut bien
comprendre comment fonctionne le moteur pour cela. Et
surtout l'utiliser dans un environnement fait de brushs
en STRUCTURE et non en DETAIL (Petit
rappel)
Voilà,
en espérant ne pas vous avoir trop saoulé
avec cette démonstration rapide !!!
Si
vous avez des questions !!!