Revenir au plan du site
Techniques de clipping
Présentation de quelques techniques de clipping (il y en a d'autres, vous en trouverez d'autres vous même, adaptées à vos projets).
- Pas d'affichage!
- Du clipping sans le faire!
- Gestion en tuiles
- Vrai clipping
Pas de clipping
Pas de clipping, pas de clipping. Les personnages apparaissent et disparaissent d'un coup. ^_^
Du clipping sans clipping
Le problème du clipping, c'est qu'il implique des calculs ou il implique (dans le cas ci-dessous) d'éclater les sprites en un plus grand nombre de colonnes (ce qui augmente la gestion puisque le
nombre de colonnes augmente aussi). L'idée est de déborder suffisament peu et d'effacer les bordures avant de permuter le buffer à l'écran.
Par contre, comme on le voit au début de la séquence, les tiles sont clippées verticalement (elles sont affichées de bas en haut avec un compteur intégré).
Voici une extraction visuelle de l'affichage de ce jeu en cours de développement.
Gestion en tuiles
Le personne est éclaté en plusieurs 'caractères'. Cette gestion est héritée du spectrum qui ne sait afficher que des caractères hard. Les sprites composés de caractères
ne peuvent être affiché qu'avec une précision au caractères (tous les 8 pixels en largeur et toutes les 8 lignes en hauteur). Ainsi, pour ce personnage, la vingtaine
de caractères qui le compose sont testés. Soit le caractères est entièrement à l'écran, soit il est entièrement dehors et n'est pas affiché.
Il n'est pas possible d'avoir un caractère composant le personnage à cheval sur l'écran et l'extérieur de l'écran.

L'autre intérêt de la gestion en tuiles concerne les sprites qui peuvent avoir des formes variées sans qu'on soit obligé de stocker en mémoire un rectangle englobant le dessin. Sur la plupart des
sprites du karateka, il suffit d'une ou deux tuiles en largeur pour la tête et on peut augmenter leur nombre pour les différentes parties du corps. On économise de la mémoire au passage.
Véritable clipping
La méthode universelle fonctionnant sans restreindre l'affichage demande de gérer les 4 bords. Le plus simple est de couper le sprite en bas, on ne fait que s'arrêter plus tôt d'afficher. Vient ensuite le cas où
le sprite déborde en haut, on part du haut de l'écran et on saute la quantité de données nécessaires (voir calculs plus bas). Au niveau des calculs, le clipping gauche et droite sont les plus coûteux en temps
machine puisqu'il faut les réaliser à chaque ligne. Dans les deux cas, il suffit de sauter un peu plus loin dans les données et de raccourcir la longueur affichée mais si vous utilisez cette routine pour un
sprite qui n'aurait pas besoin d'être découpé, vous allez passer votre temps à ajouter des zéros pour rien, c'est dommage.

Maintenant que vous savez la vérité, il est temps de programmer cette routine de clipping véritable dans
[l'article suivant]