Differences

This shows you the differences between two versions of the page.

Link to this comparison view

egc:laboratoare:fr:06 [2019/11/14 07:23]
alexandru.gradinaru
egc:laboratoare:fr:06 [2019/11/14 07:33] (current)
alexandru.gradinaru
Line 7: Line 7:
 En utilisant OpenGL sont transmises au GPU : les coordonnées des pics, les matrices de transformation des pics (M: modélisation,​ V: visualisation,​ P: projection, MV: modélisation-visualisation,​ MVP: modélisation-visualisation-projection),​ la topologie des primitives, textures et données . En utilisant OpenGL sont transmises au GPU : les coordonnées des pics, les matrices de transformation des pics (M: modélisation,​ V: visualisation,​ P: projection, MV: modélisation-visualisation,​ MVP: modélisation-visualisation-projection),​ la topologie des primitives, textures et données .
  
-{{ :​egc:​laboratoare:​banda_grafica.png?​nolink&​500 |}}+<​hidden>​{{ :​egc:​laboratoare:​banda_grafica.png?​nolink&​500 |}}</​hidden>​ 
 +{{ :​egc:​laboratoare:​fr:​annotation_2019-11-14_094838.png?​nolink&​500 |}}
  
 1. Dans l’étape programmable,​ VERTEX SHADER transforme les coordonnées d’un pic à l’aide de la matrice MVP, en passant de coordonnées d’objet à coordonnées de coupe (coordonnées angulaires du clip ). En outre, des calculs d'​éclairage au niveau de pointe peuvent être effectués. Le programme VERTEX SHADER est exécuté en parallèle pour un très grand nombre de pics. 1. Dans l’étape programmable,​ VERTEX SHADER transforme les coordonnées d’un pic à l’aide de la matrice MVP, en passant de coordonnées d’objet à coordonnées de coupe (coordonnées angulaires du clip ). En outre, des calculs d'​éclairage au niveau de pointe peuvent être effectués. Le programme VERTEX SHADER est exécuté en parallèle pour un très grand nombre de pics.
Line 193: Line 194:
  
   - Télécharger [[https://​github.com/​UPB-Graphics/​Framework-EGC/​archive/​master.zip|le framework de laboratoire]]   - Télécharger [[https://​github.com/​UPB-Graphics/​Framework-EGC/​archive/​master.zip|le framework de laboratoire]]
-  - Completati functia ​''​RenderSimpleMesh'' ​astfel inca sa trimiteti corect valorile uniform catre Shader +  - Completez la fonction ​''​RenderSimpleMesh'' ​pour que les valeurs soient correctement envoyées à Shader 
-    * Se interogeaza locatia uniformelor ​"Model", "View" ​si "​Projection"​ +    * L'​emplacement des uniformes ​"Modèle", "Vue" ​et "​Projection" ​est interrogé 
-    * Folosind ​''​glUniformMatrix4fv'' ​sa se trimita matricile corespunzatoare catre shader +    * Utilisation ​''​glUniformMatrix4fv'' ​des tableaux appropriés à envoyer au shader 
-    * Daca ati completat corect functia, si ati completat ​gl_Position ​in vertex shader, ​ar trebui sa vedeti ​un cub pe centrul ecranului rottit ​45 grade in jurul lui si colorat variat +    * Si vous avez terminé la fonction correctement et que vous avez terminé ​gl_Position ​dans le vertex shader, un cube au centre de l'​écran pivoté à 45 degrés autour de et de couleur différente 
-  - Completati ​Vertex ​Shaderul +  - Completez le Vertex ​Shader 
-    - Se de clara atributele de intrare pentru ''​Vertex Shader'​' folosind layout location ​<code glsl>+    - Il efface les attributs d'entrée pour Vertex Shader ​utiliser l'emplacement de la disposition ​<code glsl>
  layout(location = 0) in vec3 v_position;  layout(location = 0) in vec3 v_position;
  // same for the rest of the attributes ( check Lab6.cpp CreateMesh() );  // same for the rest of the attributes ( check Lab6.cpp CreateMesh() );
  
 </​code>​ </​code>​
-    - Se declara atributele ​de iesire catre ''​Fragment Shader'' ​<code glsl>+    - Les attributs ​de sortie à Fragment Shader ​sont déclarés ​<code glsl>
  out vec3 frag_color;  out vec3 frag_color;
  // same for other attributes  // same for other attributes
 </​code>​ </​code>​
-    - Se salveza valorile ​de iesire in ''​main()''​ <code glsl>+    - Les valeurs ​de sortie sont enregistrées dans ''​main()''​ <code glsl>
  frag_color = vertex_color;​  frag_color = vertex_color;​
  // same for other attributes  // same for other attributes
 </​code>​ </​code>​
-    - Se calculeaza pozitia in clip space a vertexului primit folosind matricile ModelView, Projection <code glsl>+    - La position dans le clip reçu du sommet reçu est calculée à l'aide des matrices ModèleVue, Projection<code glsl>
  gl_Position = Projection * View * Model * vec4(v_position,​ 1.0);  gl_Position = Projection * View * Model * vec4(v_position,​ 1.0);
 </​code>​ </​code>​
-  - Completati Fragment ​Shaderul +  - Copmletez le fragment ​Shaderul 
-    * Se primesc valorile atributelor trimise ​de la ''​Vertex Shader''​ +    * Les valeurs des attributs envoyés ​de ''​Vertex Shader''​ 
-    * Valoarea ​de intrare ale fiecarui atribut e calculata prin interpolare liniara intre vertexii ce formeaza ​patch-ul definit la desenare ​(triunghilinie) <code glsl>+    * La valeur d'​entrée ​de chaque attribut est calculée par interpolation linéaire entre les sommets formant le patch défini au dessin ​(triangleligne)<code glsl>
  in vec3 frag_color;  in vec3 frag_color;
 </​code>​ </​code>​
-    * Se calculeaza valoarea fragmentului ​(pixeluluide output ​<code glsl>+    * La valeur du fragment de sortie ​(pixelest calculée ​<code glsl>
  out_color = vec4(frag_color,​ 1);  out_color = vec4(frag_color,​ 1);
 </​code>​ </​code>​
-  - Sa se utilizeze normala vertexilor pe post de culoare de output in cadrul ​Fragment Shader-ului +  - Pour utiliser le sommet normal en tant que couleur ​de sortie dans le Fragment Shader 
-    * Inspectati de asemenea structura ''​VertexFormat''​ pentru a intelege ceea ce se trimite pe fiecare ​pipe +    * Inspectez également la structure VertexFormatpour comprendre ​ce qui est envoyé sur chaque ​pipe. 
-  - Sa se interschimbe **pipe-ul 1** cu **pipe-ul 3**Trimiteti normala pe **pipe-ul 3** si culoarea vertexului pe **pipe-ul 1** +  - Échangez le pipe 1 avec le pipe 3 . Envoi normal sur le pipe 3 et couleur de sommet sur le pipe 1 
-    * Se inspecteaza rezultatul obtinut +    * Le résultat obtenu est inspecté 
-  - Bonus: ​sa se trimita timpul aplicatiei ​(Engine::​GetElapsedTime()), ​si sa se varieze pozitia si culoarea ​(unul sau mai multe canale ​de culoaredupa o functie ​de timp (trigonometrica ​etc.)+  - Bonus: ​envoyez le temps d'​application ​(Engine :: GetElapsedTime ()), et changez la position et la couleur ​(un ou plusieurs canaux ​de couleuraprès une fonction ​de temps (trigonométrique, ​etc.)
  
 <​hidden>​ <​hidden>​
egc/laboratoare/fr/06.1573709002.txt.gz · Last modified: 2019/11/14 07:23 by alexandru.gradinaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0