12.07.2015 Views

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Jaromír BRAMBOR4.5. MODÈLE FORMEL DU TRAITEMENT EN PIPELINE GRAPHIQUESi nous travaillons avec plusieurs textures à <strong>la</strong> fois stockées dans un array, nous aurons besoin d’unin<strong>de</strong>x <strong>pour</strong> y accé<strong>de</strong>r. Nous définissons ainsi un type TXI <strong>de</strong>stiné à ce travail en nous basant sur le typed’in<strong>de</strong>xation I, cf. 4.3.1.1, page 64 :type TXI = I4.5.1.4 Type <strong>pour</strong> les primitives <strong>de</strong> <strong>la</strong> formeNous allons travailler avec certaines formes géométriques <strong>pour</strong> passer les comman<strong>de</strong>s graphiquesdans les unités <strong>de</strong> calcul d’un GPU. Il s’agit précisément d’un rectangle (Rect), d’une ligne (Line) etd’un point (Point). Pour les stocker, nous avons défini un type énumératif Shape :data Shape = Rect | Line | Point4.5.1.5 Types <strong>pour</strong> les vertexLes vertex constituent un <strong>de</strong>s piliers <strong>de</strong> traitement sur les GPU. Ce sont les structures <strong>de</strong> donnéesutilisées <strong>pour</strong> stocker les informations re<strong>la</strong>tives au traitement <strong>de</strong>s vertex dans le pipeline graphique.Formellement, nous définissons un vertex comme une structure composée, qui doit contenir obligatoirementun point P exprimant <strong>la</strong> position dans l’espace 2D ou 3D. Il peut contenir une éventuelleinformation sur <strong>la</strong> couleur représentée, soit par <strong>la</strong> liste vi<strong>de</strong> dans le cas où le vertex ne possè<strong>de</strong> pasd’information <strong>de</strong> couleur, soit par <strong>la</strong> liste <strong>de</strong>s tuples (CI,C). L’in<strong>de</strong>x CI, est utilisé <strong>pour</strong> distinguer lesdonnées lors du travail avec plusieurs couleurs mais aussi <strong>pour</strong> mettre <strong>la</strong> couleur en correspondance avecles p<strong>la</strong>ns <strong>de</strong> rendu si nous utilisons le pipeline graphique <strong>pour</strong> le rendu dans plusieurs textures (angl.ren<strong>de</strong>r to multiple textures). Un vertex peut contenir également aucune, une ou plusieurs information surles données stockées dans les textures exprimées par <strong>la</strong> liste <strong>de</strong>s tuples (TXI, TXP). L’in<strong>de</strong>x TXI i<strong>de</strong>ntifie<strong>la</strong> texture, <strong>la</strong> position TXP i<strong>de</strong>ntifie <strong>la</strong> position d’un élément dans cette texture.Dans le formalisme fonctionnel, un vertex V est défini comme :type V = ( P , [ ( CI , C ) ] , [ ( TXI , TXP) ] )Nous utiliserons également une fonction <strong>de</strong> manipu<strong>la</strong>tion mkV qui crée un vertex à partir <strong>de</strong> sescomposantes et dont <strong>la</strong> définition exacte est présenté en Annexe B, page 202.4.5.1.6 Type <strong>pour</strong> les fragmentsLes fragments constituent également un pilier <strong>de</strong> traitement sur les GPU. Ce sont les structures <strong>de</strong>données qui stockent l’information re<strong>la</strong>tive au traitement <strong>de</strong>s fragments dans le pipeline graphique.Un fragment est une donnée composée qui contient obligatoirement un point P <strong>de</strong> position 2D àl’écran et <strong>la</strong> profon<strong>de</strong>ur du fragment Dpth. En effet, il contient encore l’information 3D à travers <strong>la</strong> profon<strong>de</strong>ur.À ces données nous ajoutons, <strong>de</strong> <strong>la</strong> même façon que l’on a fait <strong>pour</strong> les vertex, <strong>de</strong>s informationssur <strong>la</strong> couleur en utilisant <strong>la</strong> liste <strong>de</strong>s tuples (CI,C) et <strong>de</strong>s informations sur les données stockées dans lestextures en utilisant <strong>la</strong> liste <strong>de</strong>s tuples (TXI, TXP).Ainsi, nous définissons le type F d’un fragment comme :type F = ( P , Dpth , [ ( CI , C ) ] , [ ( TXI , TXP) ] )Nous utiliserons aussi une fonction <strong>de</strong> manipu<strong>la</strong>tion mkF qui crée un fragment à partir <strong>de</strong> ses composanteset dont <strong>la</strong> définition exacte est présentée en Annexe B, page 202.4.5.1.7 Types <strong>pour</strong> le framebufferLe framebuffer est une structure dans <strong>la</strong>quelle le pipeline graphique écrit les pixels à <strong>la</strong> fin du traitement,nous pouvons dire que c’est une mémoire <strong>de</strong> sortie. De nos jours, les possibilités <strong>de</strong> programmation79

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!