Je ne comprends pas le terme « tri de palette » ni la notion de plan "1-2", "1-3" etc. en ./19.
C'est pas "Tri" mais "Trick" que je voulais dire, j'ai tapé trop vite désolé.
Je comprends qu'on peut faire de la transparence en réservant un bitplan effectivement (palette custom pour les couleurs 16-31 par exemple), mais c'est assez coûteux du coup.
Non, il ne faut pas réserver un bitplane pour créer cet effet de transparence.
Il faut juste ajuster la palette globale entre les bitplanes pour que la couleur de l'eau devienne transparente.
Il n' y a aucune contrainte pour le coder. C'est 100% gratuit.
On dirait que l'avant-plan est essentiellement en 3 bits, donc t'as 7 couleurs mais pour le plan entier ? Et les trucs plus colorés comme les champis tu les blites séparément ?
Non l'avant plan utilise 4 bitplanes donc 15 couleur + une couleur "de transparence" pour laisser apparaitre l'arrière plan.
Et rien n'est "blitté" dessus sauf les vagues animées (le cpu serait plus efficace pour ça en +).
Dans ces 15 couleurs, seule la couleur de l'eau est transparente, mais n'importe quelle autre couleur pourait être transparente.
On pourait rendre l'herbe et le feuillage des arbres légèrement transparent par exemple, ce qui augmenterait considérablement le nombre de couleur affichés à l'écran et le tout gratuitement.
Ce qui est redessiné à chaque frame, c'est l'arrière plan et les sprites (sur les bitplanes 4-5-6-7) et le Hud (sur les bitplanes 0-1-2-3).
Mais pour accélérer la copie du décor du fond, la palette a été agencée sur les bitplane pour que ces derniers ne soit pas tous copiés.
Seul une partie du décor de fond n'utilise que les 4 derniers bitplanes. le ciel et les nuages n'utilisent que 2 bitplanes et la partie inférieur du fond 3 bitplanes.
C'est ce genre d'optimisation qui est proposé pour Sonic par Templeton via son schéma ci-dessus.
Pour optimiser l'affichage, il faut bien connaitre les couleurs qui sont associées aux bitplanes.
Voici un autre exemple si tu voulais faire un PACMAN en s'attardant avec les sprites:

Il n'est pas nécesaire d'utiliser tous les plans pour afficher les couleurs des sprites.
En choisisant l'ordre des couleurs dans la palette, les fantomes et pacman n'ont besoin que de 2 ou 3 bitplanes.
Cela économise beaucoup de temps machine, avec en bonus, une compression plus efficace des datas dans la mémoire vive et le support physique.
Si ta fonte est blanche par exemple, tu ne copieras que le bitplane 2 car la couleur blanche (la couleur 02) est associée à ce bitplane.
Si tu avais choisi de mettre la couleur blanche tout au bout de la palette (couleur 015) il aurait fallu afficher les 4 bitplanes.
D'ou l'importance de bien choisir l'ordre des couleurs dans sa palette si on veut optimiser la vitesse d'affichage.
Ce qui est amusant c'est que tout le monde imagine que tous les fantomes prennent le même temps machine (et ça serait le cas avec la majorité des programmeurs) mais en fait dans cet exemple, le fantome rose et verts sont plus gourmands !
L'AGT tool de Doug Little ne permet pas encore de choisir le nombre de bitplanes pour les sprites ou les copies de blocs. Il en avait parlé un moment il me semble.
Peut être qui le fera avec l'engouement actuel pour sa librairie, ça rendrait son moteur parfait (il est déjà génial).
Si l'on devait convertir par exemple Hybris sur STE, il faudrait que les vaisseaux enemies et les tirs du joueur soit en 3 couleurs (donc 2 bitplanes) comme sur Amiga pour le faire tourner en 50 fps.
Avec l'AGT Tool on ne peut pas le faire, donc il y aurait trop de ralentissement quand l'écran serait surchargé.
Et même avec cette optimisation ce serait compliqué, il serait préférable d'utiliser des sprites en code généré...
Concernant la transparence et le masquage.
Voici un schéma avec la palette de pacman si tu veux poser un sprite jaune sur le bitplane 2:

4 versions différentes:
1: Voici le résultat avec l'opération de type AND pour le masque et OR pour le sprite.
2: Ensuite le résultat sans les opération logiques.
3: Toujours le résultat sans les opération logiques, mais en modifiant simplement la couleur N°06 avec un jaune très clair pour obtenir... une transparence !
4: Et pour finir, si tu remplaces la couleur 06 par la couleur 04 tu obtiens... un masquage sans opération logique ! C'est donc gratuit en temps machine, mais tu perd une couleur.
C'est pour cela que tu peux faire un dualplayfield rapide sur Sonic Falcon (si tu utilises cette fameuse méthode) mais pas sur Sonic STE car tu as 2 fois moins de bitplanes et 240 couleurs en moins.
Le résultat serait très pauvre en couleurs sur STE ,10 couleurs au total avec la méthode de Joefish (cf sa démonstration remarquable d'un Shadow of the Beast ST revisité).
Ce qu'il faut retenir, c'est que pour obtenir une couleur avec le mode planar, tu dois associer entre 1 à 4 Bitplanes.
Pour obtenir la couleur violette (Couleur N°015) il faut additionner les 4 bitplans.
Pour obtenir la couleur bleue foncé (Couleur N°05) il faut additionner les bitplans 1 et 3.
Pour obtenir la couleur verte foncé (Couleur N°014) il faut additionner les bitplans 2,3 et 4.
Il faut vraiment programmer l'Atari ST pour comprendre le fonctionnement de l'affichage, c'est très particulier (comme l'Amiga qui est assez proche dans le principe).
En fait ce n'est même pas un trick en réalité, c'est une fonction prévue par le hardware.
La transparence sur Atari est cablé, c'est l'un des avantages du planar sur le chunki, pas besoin de calcul !