Pipeline Graphique

1,760 views
1,626 views

Published on

Explication du fonctionnement des API 3D matériels, comme opengl, directx.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,760
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Pipeline Graphique

  1. 1. Le pipeline graphique temps réel Entrées: <ul><li>Géometries,
  2. 2. Surfaces, Lumières,
  3. 3. Cameras,
  4. 4. Surfaces de rendus </li></ul>Sorties: <ul><li>Couleurs réparties sur les surfaces de rendu selon ses capacités </li></ul>Modeling Transformations Illumination (Shading) Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion (Rasterization) Visibility / Display
  5. 5. Modeling Transformations <ul><li>Les modèles 3D sont définis dans leurs propre système de coordonées. (object space)
  6. 6. Les Modeling transforms font le changement de repère (world space) </li></ul>Modeling Transformations Illumination (Shading) Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion (Rasterization) Visibility / Display Object space World space
  7. 7. Illumination (Shading) <ul><li>Les Vertex sont illuminés (shaded) selon les propriétés des matériaux, des surface (normal) et des lumières
  8. 8. Modèles d'illumination (Diffuse, Ambient, Phong, etc.) </li></ul>Modeling Transformations Illumination (Shading) Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion (Rasterization) Visibility / Display
  9. 9. Viewing Transformation <ul><li>Transforme du “world space” vers “eye space » (Camera)
  10. 10. La position de visualisation est transformé selon l'origine & et sa direction est orienté selon l'axe (en général z ) </li></ul>Modeling Transformations Illumination (Shading) Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion (Rasterization) Visibility / Display Eye space World space
  11. 11. Clipping Modeling Transformations Illumination (Shading) Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion (Rasterization) Visibility / Display Eye space frustum
  12. 12. Scan Conversion (Rasterization) <ul><li>Rasterize les objets en pixels
  13. 13. Interpolation des valeurs
  14. 14. (couleur, pronfondeur, etc.) </li></ul>Modeling Transformations Illumination (Shading) Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion (Rasterization) Visibility / Display
  15. 15. Visibilité / Affichage <ul><li>Algorithme du peintre (Z-Buffer)
  16. 16. Chaque étape du pipeline est un forme de transformation </li></ul>Modeling Transformations Illumination (Shading) Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion (Rasterization) Visibility / Display
  17. 17. Systèmes de Coordonnées <ul><li>Object space </li></ul><ul><ul><li>Locale à chaque objet </li></ul></ul><ul><li>World space </li></ul><ul><ul><li>commun à tous les objets </li></ul></ul><ul><li>Eye space / Camera space </li></ul><ul><ul><li>derivé du frustum de visualisation </li></ul></ul><ul><li>Clip space / Normalized Device Coordinates (NDC) </li></ul><ul><ul><li>[-1,-1,-1] -> [1,1,1] </li></ul></ul><ul><li>Screen space </li></ul><ul><ul><li>Indexé selon les capacités hardware </li></ul></ul>
  18. 18. Systèmes de Coordonnées Modeling Transformations Illumination (Shading) Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion (Rasterization) Visibility / Display Object space World space Eye Space / Camera Space Clip Space (NDC) Screen Space
  19. 19. Matériel - GPU
  20. 20. Matériel - GPU OpenGL (vertex) buffer object GPU command processor vertex puller hardware rendering pipeline CPU CPU writes of command + vertex indices vertex array GPU DMA transfer of command data application (client) memory memory reads CPU GPU DMA transfer of vertex data—CPU never reads data command queue
  21. 21. Shaders <ul><li>Résout la multiplicité de modèles de transformation, de lumière cablé en dur en donnant accès a des étapes du pipeline </li></ul>Model data Vertex and texture coord Vertex Programs Fragment Programs Rasterization Framebuffer Fixed-functions (lighting, clipping, culling, projection, viewport mapping) Fixed-functions (pixel ownership testing, scissoring, alpha testing, blending, masking)
  22. 22. Shader – ambient lighting // Vertex Shader void main() { gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; } // Fragment Shader void main() { gl_FragColor = vec4(0.2, 0.6, 0.8, 1); }
  23. 23. Shader – ambient lighting

×