GPU jr - LUCE

ORIC ATMOS jr  GPU jr - Accueil  GPU jr  TECHNIQUE TIMING LUCE
SPECIFICATION
LUCE est un acronyme pour L'Unité de Calcul et Effets
Cette unité va nous permettre d'effectuer les effets suivants
  • Recopie de zone mémoire selon les modes suivants :
    • Zone linéaire à zone linéaire,
    • Zone linéaire à zone rectangulaire,
    • Zone rectangulaire à zone linéaire.
  • Les opérations possibles sont :
    • Recopie de zone,
    • ET entre la zone source et la zone de destination,
    • OU entre la zone source et la zone de destination,
    • XOR entre la zone source et la zone de destination,
    • NOT entre la zone source et la zone de destination,
    • Remplissage de la zone de destination avec une couleur,
    • Remplissage de la zone de source avec une couleur,
    • ....
LES PRINCIPALES DIFFICULTEES
Le principal problème provient des effets de bords induits par l'ULA.
Si nous voulons dessiner par exemple un carré de 100 pixels de côté, nous nous heurtons au problème de l'attribut.
EXEMPLE :
L'écran en haute résolution se divise en 40 blocs de 6 pixels par ligne.
Nous voulons remplir une zone carrée de 100 pixels de côté. Il faut donc :
  • Ecrire l'octet d'attribut qui coloriera 6 pixels,
  • Ecrire (100 modulo 6) - 1 octets de couleur,
  • Puis 1 octet pour le reste de 100 divisé par 6 c'est à dire 4 pixels,
  • Et enfin 1 octet d'attribut pour éviter que la zone qui suit le carré prenne sa couleur si cela n'est pas désiré.
LES SPRITES
Est-ce necessaire ? Comment accomplir l'affichage d'un sprite ?
Caractéristique d'un sprite
  • Taille : 16 pixels de largeur sur 16 pixels de hauteur,
  • 4 couleurs dont une transparente,
  • Précision : pixel près,
  • Affichage indépendant du fond : pas de conflit de couleur.
Caractéristiques techniques
Les sprites sont définis dans une matrice de 16 colonnes sur 16 lignes.
Chaque élément de cette matrice est défini par deux bits.
Ainsi pour chaque ligne constituant ce sprite, nous aurons :

AABBCCDDEEFFGGHH où AA, BB .. HH représentent l'index dans la palette de couleur associée au sprite.

BitsSignification
00 Transparence
01 Ink 1
10 Ink 2
11 Ink 3
Ce qui nous donne 4 couleurs pour le sprite.

Le codage un peu particulier du sprite provient du fait de la sérialisation des codes couleurs dans l'ULA.
Nous allons utiliser une des particularités de l'attribut dans un écran haute résolution de l'oric ATMOS.
En effet lorsqu'on défini un attribut, le bit n°5 de celui-ci n'a aucune signification.
Ce qui veut dire que nous allons l'utiliser pour définir une palette de couleur pour les sprites.

BITS SIGNIFICATION
7 Non significatif
6 =1 Attribut, = 0 Pixel écran
5 =1 Palette Sprite, =0 Palette écran
4 - 3 =00 INK 1
 =01 INK 2
 =10 INK 3
 =11 RIEN
2 - 0 couleur RGB, 1 bit par composante

AVANTAGE :
  • Il n'y a pas de conflit de proximité pour les couleurs lorsque le sprite est affiché,
INCONVENIENTS :
  • Nombre de couleurs limité,
  • Les sprites à la même position verticale ont la même palette de couleur dans le cas où on ne veut pas de conflit de couleur.

Certes, nous sommes limités à quatre couleurs mais cela dans une zone d'affichage bien précise.
C'est à dire que pour une autre zone, les couleurs vont être différentes.

MAIS Les couleurs ne sont pas remises à leur état initial à chaque changement de ligne. Ce qui induit que nous définissons un endroit "non stratégique" pour que les changements de couleurs n'influent pas sur le reste de l'écran.

TECHNIQUE LUCE ULA Ie