APPLICATIONSCREATION GRAPHIQUE ★ VISION (CPC REVUE) ★

Vision (CPC Revue)Applications Creation Graphique
L'utilisation de l'ordinateur s'est rapidement démocratisée et s'est mise à la portée de la famille. Un type d'application, particulièrement attrayante, concerne la création et la visualisation d'images, de sorte que les logiciels d'applications graphiques auront dans l'avenir une position de plus en plus privilégiée.

Parmi les techniques informatiques de pointe, la C.F.A.O. (Conception-Fabrication Assistée par Ordinateur) utilise l'image comme principal support de communication entre l'homme et la machine. C'est dans cette optiqjje que nous avons développé notre logiciel "VISION" qui constitue une initiation aux principales techniques graphiques utilisées en C.A.O. Il permet, en particulier :

  • la description et modélisation d'un objet ;
  • la manipulation dans l'espace de cet objet ;
  • la familiarisation avec les techniques d'agrandissement (zoom) ;
  • le rendu réaliste de l'image projetée par élimination des faces cachées. L'ensemble des possibilités offertes fera l'objet d'une description détaillée à la fois théorique, informatique et pratique. C'est l'objet de cet article.

DESCRIPTION THEORIQUE

L'objet que l'on veut représenter est en général tridimensionnel, alors que l'écran de l'ordinateur, qui constitue le support de l'image est, lui, bidimensionnel. L'outil mathématique principal sera donc celui qui permet le passage de l'espace 3D à l'espace 2D. Il s'agira d'une projection géométrique plane.

REPERES DE DESCRIPTION

L'objet est décrit en utilisant un repère cartésien OXYZ (figure 1) et les points caractéristiques de cet objet seront repérés à partir des coordonnées X, Y, Z de ces points.

L'œil de l'observateur, lui, est défini dans un repère sphérique (R.0,^) et l'utilisateur pourra modifier à convenance la position de cet œil (figure 2). Le type de projection géométrique adopté sera :

  • la projection perspective : le centre de projection est à distance finie du support de projection ;
  • la projection parallèle : le centre de projection est à l'infini.

La différence entre ces deux types de projection pourra être observée aisément à l'aide des exemples proposés.

PROJECTION GEOMETRIQUE

Le principe de la projection géométrique est rappelé brièvement dans ce chapitre (figure 3).

  • Le repère général de description de l'objet a pour origine le point O.
  • Le repère de l'observateur (œil) a pour origine O' et l'axe ZO' de ce repère passe par O. La distance entre l'œil O' et l'origine O est R.
  • L'écran est un plan perpendiculaire à la droite OO'. Il est situé à une distance D de l'œil.

On peut relier par des formules simples les coordonnées écran (XE,YE) aux coordonnées (X0,Y0>Z0) d'un point de l'objet dans le repère de l'observateur.

D'autre part, on passe du repère objet (OXYZ) au repère observateur (O'X0 Y0Z0) Par des transformations simples (translations, rotations...) de sorte qu'un point P de l'objet de coordonnées X,Y,Z se transforme dans le repère observateur en utilisant les relations suivantes :

[2]

X0 = -X sin θ + Y cos θ
X0 = -X cos θ + Y sin θ - Y sin θ sin φ + Z cos φ
Z0 = -X cos θ cos φ - Y sin θ cos φ - Z sin φ

CENTRAGE INITIAL

La position initiale de l'œil est fixée automatiquement de telle sorte que R = D » zO maxi. Dans ces conditions, l'image initiale est obtenue en utilisant une projection parallèle :

XE ≈ X0 et YE = Y0

Le centrage de l'image sur l'écran est alors calculé en utilisant la notion de

[3]

"fenêtres" d'ont les limites sont W1, W2, W3, W4 en coordonnées utilisateur et la notion de "Viewport" en coordonnées écran dont les limites sont V1, V2, V3, V4.

Les formules de passage de (XE,YE) vers les coordonnées réelles sur écran (XEC,YEC) sont d'après [4],

MAINTIEN DU CENTRAGE

Lorsque l'on modifie la distance de l'œil (R), la position de l'écran (D) ou lorsque l'on effectue un "zoom", il est nécessaire d'effectuer un recentrage de la nouvelle image sur le moniteur (figure 4). Ceci est effectué simplement en appliquant les formules (3) dans lesquelles on aura préalablement modifié la valeur des coefficients bg et bg par :

[4]

b*8 = kb8 + XC0-kXc1
b*9 = kb9 + YC0-kYc1

k : proportion entre la dimension de la nouvelle image et de l'ancienne.

XC0,YC0 : coordonnées moniteur du centre de l'image à obtenir.

XC1, YC1 : coordonnées moniteur du centre de la partie que l'on déplace.

  • Par ce procédé, lorsque R diminue, l'image grandit en augmentant les effets de perspectives (formules 1 et 3), mais reste centrée sur le moniteur.
  • Si l'on approche l'écran de projection, D diminue et la taille de l'image diminue elle aussi, sans toutefois, modifier les effets de perspectives (formules 1 et 3), mais en restant centrée.
  • Un zoom est traité comme un éloigneraient brusque d'écran, excepté que seule une portion réduite de l'image est concernée (cette zone est sélectionnée par l'utilisateur).

Le détail de ces opérations sera abordé au chapitre "utilisation".

TRAITEMENT DES FACES CACHEES

Les algorithmes permettant l'élimination des faces cachées sont en général complexes et demandent une puissance de calcul importante. La majorité d'entre eux seront donc inadaptables sur un CPC 464 ou tout autre ordinateur du type "familial".

Parmi les méthodes les plus simples, on peut citer celle qui consiste à tester la visibilité des faces d'un objet à partir de l'orientation des normales. Cette méthode nécessite cependant, de la part de l'utilisateur, une description rigoureuse des facettes en respectant, en particulier, un sens de parcours. De plus, elle ne s'applique qu'à des objets convexes.

Pour éviter ces inconvénients, on a préféré utiliser l'algorithme du "peintre". Cette méthode s'avère être très efficace, moyennant quelques précautions. Elle consiste à peindre les facettes de l'objet dans l'ordre d'éloignement de l'œil.

Il faut, toutefois, que les facettes ne soient pas trop grandes et disposer par ailleurs d'une fonction permettant le remplissage couleur de surface ("fill area"). Cette fonction, absente sur le CPC 464, a été créée en utilisant les extensions BASIC proposées par Rémy Valentin dans la revue CPC (réf. 1 ). Le principe de la méthode choisie est alors (figure 5) :

  • Calcul de l'éloignement de point de référence de chacune des facettes (le centre).
  • Classement des facettes par ordre d'éloignement décroissant.
  • Tracé et remplissage couleur des facettes en commençant par les plus éloignées.

DESCRIPTION INFORMATIQUE

Les règles d'implantation mémoire de cette partie sont les suivantes :

PROFA (100) : Profondeur des facettes.

ORD% (100) : Ordre de classement des facettes.

Les limites actuelles sont donc fixées à 100 nœuds et 100 facettes. De plus, une facette comporte au maximum 4 nœuds.

UTILISATION

La représentation ou modélisation des objets a été faite en utilisant la notion de "facettes". Il s'agit donc d'un modèle de type surface plus riche que la classique représentation "Fil de Fer". Il permet, entre autre, la description d'objets aux formes complexes. Un exemple complet est présenté en annexe, où l'on montre comment modéliser simplement un avion.

DESCRIPTION DES OBJETS

L'utilisateur a le choix entre plusieurs possibilités :

Définir son propre objet sous forme de facettes dont il précise les nœuds sommets et leurs coordonnées dans l'espace. Ainsi, il devra donner dans l'ordre :

  • le nombre de nœuds ;
  • pour chaque nœud, son numéro suivi des coordonnées dans l'espace X,Y,Z ;
  • le nombre de facettes ;
  • pour chaque facette, les nœuds la constituant (4 maxi). Lorsqu'il y a moins de 4 nœuds (triangle, droite), on complète par des zéros.

Utiliser les objets contenus dans la bibliothèque d'objets disponibles. C'est la solution conseillée pour commencer. Le contenu de cette librairie a été décrit au paragraphe : bibliothèque d'objets.

Compléter la bibliothèque d'objets en y déposant ses propres entités. La procédure détaillée a fait l'objet d'une description dans le paragraphe : Extension de la bibliothèque d'objets. On s'y reportera.

UTILISATION DES FONCTIONS

L'objet étant maintenant défini, l'utilisateur a le choix entre quatre fonctions :

  • manipulation de l'objet ;
  • manipulation de l'écran de projection ;
  • zoom ;
  • élimination des faces cachées.

Du point de vue pratique, la fonction sélectionnée sera toujours rappelée dans le coin supérieur gauche du moniteur. De même, en bas de l'écran, une fenêtre indiquera les paramètres en cours dans cette fonction.

  • Manipulation d'objets : code d'accès "O"

L'objet étant positionné dans l'espace X,Y,Z, l'utilisateur a la possibilité de changer la position de l'œil et donc, d'avoir de l'objet une vision sous un angle différent. Il pourra :

— modifier l'angle de colatitude PHI (figure 7) à l'aide des touches du curseur :

  • Touche "[HAUT]" : PHI augmente
  • Touche "[BAS]" : PHI diminue

— modifier l'angle de longitude TETA (figure 7) à l'aide des touches du curseur :

  • Touche "[DROITE] : TETA augmente
  • Touche "[GAUCHE]" : TETA diminue

Ceci nous permet de faire tourner l'objet dans tous les sens et d'observer immédiatement le résultat sur le moniteur. - L'utilisateur peut également modifier la distance entre l'œil et l'objet, ce qui permet de contrôler la grandeur de ce dernier.

Touche " A" : l'œil avance vers l'objet
Touche " H" : l'œil s'éloigne de l'objet
La touche "T" déclenche l'exécution du tracé à partir de la position de l'œil (R ,θ , φ ) indiquée dans la fenêtre du bas.

Lorsque l'image apparaît sur le moniteur, le programme revient automatiquement sur la fonction utilisée. La touche "RETURN" permet de remonter à la sélection d'une autre fonction.

  • Manipulation d'écran : code d'accès "E"

L'objet étant positionné dans l'espace X,Y,Z, l'utilisateur a la possibilité de changer la position de l'écran sur lequel il projette l'objet. Cela constitue, par exemple, un second moyen de contrôler la grandeur de l'objet. Pour cela, l'utilisateur disposera de :

  • Touche "A" : l'écran avance vers l'œil ;
  • Touche "R" : l'écran s'éloigne de l'œil ;
  • Touche " [HAUT] " : translation verticale positive ;
  • Touche "[BAS]" : translation verticale négative ;
  • Touche "[DROITE]" translation horizontale positive ;
  • Touche "[GAUCHE]" translation horizontale négative. Ces quatre dernières touches permettent de faire du centrage sur des portions d'image.
  • La touche "T" déclenche l'exécution du tracé en utilisant les paramètres indiqués dans la fenêtre. La touche "RETURN" permet, là encore, de remonter à la sélection d'une autre fonction.

Il est essentiel de bien comprendre la différence entre une modification de la distance œil-objet et la modification de la distance œil-écran. On laisse le soin à l'utilisateur de tirer une règle simple sur les variations de ces deux paramètres en proposant d'utiliser pour cela l'objet n° 2 de la bibliothèque (cube ouvert).

  • Zoom : code d'accès " Z"

L'objet étant visualisé sur le moniteur, l'utilisateur a la possibilité de définir de manière interactive une fenêtre précisant la zone devant être agrandie. Ceci se fait par l'acquisition de deux points à l'aide du Joystick, matérialisant la diagonale de la fenêtre. Attention, le point représentant la position courante du curseur est rouge et de petite taille. Il part toujours du centre de l'écran. Lorsque l'on a sélectionné le 1er point, le curseur se dédouble.

A la sélection du 2eme point, le cadre rectangulaire rouge indique la zone des traits du dessin sans pour autant les effacer.

Nous vous proposons, à titre d'entraînement, d'essayer le zoom sur l'axe du moulin (objet n° 4 dans la bibliothèque) ou sur la carlingue de l'avion (objet n° 3).

On peut, bien entendu, enchaîner plusieurs zooms les uns derrière les autres. L'utilisation de la touche "RETURN" donne le choix de revenir ou non à l'image initiale.

  • Elimination des faces cachées : code d'accès " R" A partir de l'image en cours sur le moniteur, on réalise un dessin en couleur dans lequel les faces cachées sont éliminées.

Là, l'utilisateur n'a rien à faire si ce n'est REGARDER et APPRECIER.

CONCLUSION

"VISION" présente, à nos yeux, un caractère pédagogique certain. C'est, en effet, une initialisation aux techniques C.A.O. et les principales fonctions graphiques sont présentes. Ainsi, les "faces cachées", dont beaucoup parlent et que peu montrent, existent dans "VISION".

Si le sujet n'est pas très original, il a au moins le mérite d'être d'actualité. La façon dont les techniques graphiques courantes ont été introduites nous semblent intéressantes. Le résultat en est que, même avec une machine aux caractéristiques techniques modestes, on obtient des performances très satisfaisantes (zoom, faces cachées...). "VISION" est un logiciel destiné à évoluer :

  • Tout d'abord, il reste des améliorations à apporter : on les a évoquées lors de l'exposé sur les faces cachées. - Ensuite, la partie "mise en donnée" est à concevoir entièrement en installant un degré d'interactivité poussé pour la définition, le rappel, la modification d'objets. Là, le lecteur de disquettes nous semble malheureusement indispensable et nous n'en disposons pas actuellement.
  • Les évolutions envisagées également concernent le développement de nouvelles fonctions. Citons, par exemple, l'animation, traitement de figures axisymétriques, pièces avec arcs de courbes.

En conclusion, "VISION" constitue un module de base dans la conception de pièces. Il reste un logiciel ouvert à l'utilisateur où chacun peut laisser libre court à son imagination.

REFERENCES

  1. Deux extensions BASIC Rémi Valentin (CPC n°10)
  2. Techniques graphiques interactives et C.A.O Y. Gardan - M. Lucas (Hormés)
  3. Graphisme scientifique sur microordinateur R. Dony (Masson)

CPC n°20

★ EDITEUR: CPC Revue
★ ANNÉE: 1986
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEURS: Michael PEIGNEY , Jacques PEIGNEY
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» Vision    (CPC  Revue)    (Schemas)    FRENCHDATE: 2015-01-16
DL: 233
TYPE: PDF
SiZE: 1549Ko
NOTE: 3 pages/PDFlib v1.6

» Vision    (CPC  Revue)    FRENCHDATE: 2012-08-09
DL: 249
TYPE: ZIP
SiZE: 11Ko
NOTE: Extended DSK/40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Plot It! (CPC Amstrad International)
» Applications » Graph-X
» Applications » Sprites Logiciels - Graphisto+ Graph
» Applications » 3D-Dreh (Happy Computer)
» Applications » Amstrad 3D
» Applications » Dispaint (Amstrad Semanal)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop
Page créée en 659 millisecondes et consultée 2191 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.