Differences

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

Link to this comparison view

egc:laboratoare:fr:01 [2019/10/03 04:17]
alexandru.gradinaru
egc:laboratoare:fr:01 [2019/10/03 06:46] (current)
alexandru.gradinaru
Line 183: Line 183:
 === Utiliser l'API === === Utiliser l'API ===
  
-Pe parcursul laboratoarelor ​(dar și a cursuluise va trece prin toate etapele importante ce stau la baza redării graficeAstfel vor fi învățate concepte precum+Pendant les travaux pratiques ​(mais également pendant le cours), vous passerez par toutes les étapes importantes qui sont à la base du rendu graphiqueCela enseignera des concepts tels que
-  * încărcare și randare de obiecte ​3D simple +  * chargement et rendu d'​objets ​3D simples 
-  * funcționarea ​pipeline-ului grafic +  * opération de pipeline ​graphique 
-  * vizualizareproiecțiecontrol camera +  * visualisationprojectioncontrôle de la caméra 
-  * utilizare shadere ​(vertex ​și fragment shader) +  * utiliser des shaders ​(vertex ​et fragment shader) 
-  * iluminare +  * éclairage 
-  * texturare+  * texture
  
-==== Cerințe generale ​de laborator ​====+==== Conditions générales ​de laboratoire ​====
  
-  * Citiți cu foarte mare atenție Framwork-ul de laborator întrucât îl veți utiliza pe tot parcursul laboratorului de EGC inclusiv și la temele de casă +  * Lisez très attentivement le cadre du laboratoire,​ car vous l'​utiliserez tout au long du laboratoire ​EGC, y compris les devoirs. 
-  * Citiți comentariile din cod – ar trebui să răspundă la majoritatea întrebărilor pe care le aveți +  * Lisez les commentaires dans le code - il devrait répondre à la plupart des questions que vous avez. 
-  * Citiți documentația de la [[ https://​github.com/​UPB-Graphics/​Framework-EGC/​blob/​master/​Source/​Core/​Window/​InputController.h | __InputController.h__]] ​întrucât veți utiliza constant funcțiile din cadrul acestei clase (prin suprascrierepentru definirea de interacțiuni și comportament personalizat +  * Lisez la documentation sur [[https://​github.com/​UPB-Graphics/​Framework-EGC/​blob/​master/​Source/​Core/​Window/​InputController.h | __InputController.h__]] ​car vous utiliserez constamment les fonctions de cette classe ​(écrasementpour définir des interactions et un comportement personnalisé 
-  * Dacă nu ințelegeți modelul ​de funcționare al aplicației rugați asistentul să explice încă o dată cum funcționează toată aplicația+  * Si vous ne comprenez pas le modèle d'​exploitation ​de l'​application,​ demandez à l'​assistant d'​expliquer à nouveau comment fonctionne l'​application dans son ensemble.
  
 == C++ == == C++ ==
  
-Framework-ul este scris în limbajul ​C++, ce va fi utilizat pe tot parcursul laboratoarelor+Le framework est écrit en C ++, et sera utilisé dans tous les laboratoires
-Conceptele utilizate în cadrul laboratorului și care trebuie știute sunt+Les concepts utilisés en laboratoire et qui doivent être connus sont
-  * concepte ​de bază de OOP obiectemoșteniremetode virtuale, etc +  * concepts ​de base de la POO objetshéritageméthodes virtuelles, etc. 
-  * utilizarea ​standard ​librariesîn special ​[[http://​www.cplusplus.com/​reference/​vector/​vector/​ | std::​vector]],​ [[ http://​www.cplusplus.com/​reference/​list/​list/​ | std::list ]] și [[ http://​www.cplusplus.com/​reference/​unordered_map/​unordered_map/​ | std::​unorderd_map ]]+  * utiliser des bibliothèques ​standard: ​en particulier ​[[http://​www.cplusplus.com/​reference/​vector/​vector/​ | std::​vector]],​ [[ http://​www.cplusplus.com/​reference/​list/​list/​ | std::list ]] et [[ http://​www.cplusplus.com/​reference/​unordered_map/​unordered_map/​ | std::​unorderd_map ]]
    
 <note tip> <note tip>
-Pentru cei mai puțin familiarizați cu limbajul ​C++ recomandăm să parcurgeți tutoriale: [[http://​www.learncpp.com/​ | Learn C++ ]]+Pour ceux qui sont moins familiers avec C ++, nous vous recommandons de suivre des tutoriels: [[http://​www.learncpp.com/​ | Learn C++ ]]
 </​note>​ </​note>​
  
 == Visual Studio 2017 == == Visual Studio 2017 ==
-  * În cadrul laboratorului vom utiliza ​[[https://​visualstudio.microsoft.com/​vs/​older-downloads/​|Visual Studio 2017 Community Edition]] ​sau la alegere ​[[https://​www.visualstudio.com/​vs/​community/​|Visual Studio 2019 Community Edition]] (prin conversie ​de proiect+  * En laboratoire,​ nous utiliserons ​[[https://​visualstudio.microsoft.com/​vs/​older-downloads/​|Visual Studio 2017 Community Edition]] ​ou à votre choix [[https://​www.visualstudio.com/​vs/​community/​|Visual Studio 2019 Community Edition]] (par conversion ​de projet
-  * Installer-ul ​de Visual Studio ​vine cu posibilitatea ​de a instala modular doar ceea ce este necesarPentru acest laborator trebuie instalat doar modulul default ​**Desktop development with C++**, ​care se regăsește în **Workloads** +  * Le programme d’installation ​de Visual Studio ​offre la possibilité d’installer ​de manière modulaire uniquement les éléments requisPour cet atelier uniquement le module par défaut ​** Développement de bureau avec C ++ **, disponible dans ** Workloads ** 
-  * Framework-ul conține deja un proiect preconfigurat pentru ​Visual Studio 2017 __Framework_EGC.sln__ (folderul ​[[https://​github.com/​UPB-Graphics/​Framework-EGC/​tree/​master/​Visual%20Studio| /Visual Studio]]) +  * Le framework contient déjà ​un projet préconfiguré pour Visual Studio 2017 __Framework_EGC.sln__ (dossier[[https://​github.com/​UPB-Graphics/​Framework-EGC/​tree/​master/​Visual%20Studio| /Visual Studio]]) 
-  * Deschideți soluția în Visual Studio 2017+  * Ouvrez la solution dans Visual Studio 2017
  
 <note tip> <note tip>
-Cei care nu au mai utilizat IDE-ul ​**Visual Studio** ​pentru scrierea de aplicații ​C++ sunt rugați să citească toturialul ​[[https://​msdn.microsoft.com/​en-us/​library/​jj620919.aspx#​BKMK_CreateApp | Getting Started with C++ in Visual Studio]]+Ceux qui n’ont pas utilisé ​**Visual Studio** ​pour écrire des applications ​C ++ sont invités à lire le fichier Toturial ​[[https://​msdn.microsoft.com/​en-us/​library/​jj620919.aspx#​BKMK_CreateApp | Getting Started with C++ in Visual Studio]]
 </​note>​ </​note>​
  
Line 222: Line 222:
 ==== GLM ==== ==== GLM ====
  
-În graficămatematica este folosită peste tot, de la simple matrici pentru rotații până la integrale infinit dimensionale pentru algoritmii folosiți în industria filmului, de aceea ne dorim să avem un suport de matematică robustbine documentat și nu în ultimul rând cât  mai apropiat ​de formatul ​OpenGL. ​În loc să scriem noi o librărie de matematică vom folosi librăria ​GLM. GLM ne oferă rotațiitranslațiivectori ​de dimensiune ​2/​3/​4, ​matrici și multe alte funcționalități avansate ​(e.g. modele ​de zgomot). Vom folosi doar cele mai simple funcționalități în laboratoarele ​de la această materie+Dans les graphiquesles mathématiques sont utilisées partoutdes simples matrices ​de rotation aux intégrales infiniment dimensionnelles des algorithmes utilisés dans l'​industrie cinématographique. C'est pourquoi nous souhaitons disposer d'un support mathématique robustebien documenté et aussi proche ​de Format ​OpenGL. ​Au lieu d'​écrire une bibliothèque mathématique,​ nous utiliserons la bibliothèque ​GLM. GLM nous fournit des rotationsdes translationsdes vecteurs ​de taille ​2/​3/​4, ​des matrices et de nombreuses autres fonctionnalités avancées ​(par exemple, des modèles ​de bruit). Nous n'​utiliserons que les fonctionnalités les plus simples dans les laboratoires ​de ce sujet.
  
 <code cpp> <code cpp>
Line 237: Line 237:
  
  
-==== Laboratorul ​1 ====+==== Laboratoire ​1 ====
  
 === Framework === === Framework ===
  
-Framework-ul ​de laborator se găsește pe [[https://​github.com/​UPB-Graphics/​Framework-EGC | Github]] \\  +Le cadre de laboratoire peut être trouvé sur [[https://​github.com/​UPB-Graphics/​Framework-EGC | Github]] \\ 
-Puteți să descărcați direct arhiva accesând [[https://​github.com/​UPB-Graphics/​Framework-EGC/​archive/​master.zip | acest link ]]+
  
 +Vous pouvez télécharger l'​archive directement en y accédant [[https://​github.com/​UPB-Graphics/​Framework-EGC/​archive/​master.zip | ce lien ]]
  
-=== Informații laborator === 
  
-<note important> ​Sursele ce stau la baza fiecărui laborator se află în directorul: __/​Source/​Laboratoare/​Laborator**N**/​__,​ **N** reprezentând numărul laboratorului.+=== Informations de laboratoire === 
 + 
 +<note important> ​Les sources sous-jacentes à chaque laboratoire figurent dans le dossier: __/​Source/​Laboratoare/​Laborator**N**/​__,​ **N** représentant le numéro de laboratoire.
 </​note>​ </​note>​
  
-În cadrul laboratorului ​puteți încărca modele ​3D în cadrul scenei și cere afișarea scenei utilizând funcția+Dans le laboratoire ​1, vous pouvez télécharger des modèles ​3D sur la scène et demander l’affichage de la scène à l’aide de la fonction
 <code cpp> <code cpp>
 RenderMesh(Mesh * mesh, glm::vec3 position, glm::vec3 scale) RenderMesh(Mesh * mesh, glm::vec3 position, glm::vec3 scale)
 </​code>​ </​code>​
  
-Culorile pixelilor prin care se reprezintă scena sunt salvate într-un buffer, numit Framebuffer. ​Contextul definit oferă automat ​un astfel de buffer și este configurat să ruleze cu double-buffering+Les couleurs de pixel par lesquelles la scène est représentée sont stockées dans une mémoire tampon appelée ​Framebuffer. ​Le contexte défini fournit automatiquement ​un tel tampon et est configuré pour fonctionner avec une double ​mise en mémoire tampon.
  
-API-ul OpenGL ​utilizat în cadrul laboratorului:+L'API OpenGL ​utilisée dans le laboratoire:
 <code cpp> <code cpp>
-// defineste ​un spatiu ​de desenare in spatiul ferestrei ​de vizualizare +// définit ​un espace ​de dessin dans l'​espace ​de la fenêtre 
-// x, y reprezinta coordonatele coltului stanga jos +// x, y représente les coordonnées du coin inférieur gauche 
-// width, height ​reprezinta dimensiunea spatiului ​de desenare.+// width, height ​représente la taille ​de l'​espace de dessin.
 void glViewport(GLint x,  GLint y,  GLsizei width, ​ GLsizei height); ​ void glViewport(GLint x,  GLint y,  GLsizei width, ​ GLsizei height); ​
  
-// seteaza culoarea cu care va fi colorat tot ecranul ​la operatia ​de clear+// Définit ​la couleur avec laquelle tout l'​écran sera coloré lors de l'​effacement
 void glClearColor(float r, float g, float b, float a); void glClearColor(float r, float g, float b, float a);
  
- // ​implementeaza operatia de clear+ // ​met en œuvre l'​opération d'​effacement
 void glClear(GL_COLOR_BUFFER_BIT);​ void glClear(GL_COLOR_BUFFER_BIT);​
 </​code>​ </​code>​
  
 <note important>​ <note important>​
-Culorile în OpenGL ​sunt specificate ca float în intervalul ​0 - 1+Les couleurs dans OpenGL ​sont spécifiées en tant que float dans la plage 0 - 1
  
-Bufferul ​de culoare utilizat ​(atât în cadrul laboratorului dar și în mod uzual datorită limitărilor impuse ​de afișarea pe monitoreeste în format RGBA32. ​Fiecare componentă ​(redgreenblue, alpha) ​ocupă ​bițideci intervalul ​– 255. Astfel: \\  +Le tampon ​de couleur utilisé ​(à la fois dans le laboratoire et généralement en raison ​de limitations imposées par l'​affichage sur le moniteurest au format RGBA32. ​Chaque composant ​(rougevertbleu, alpha) ​occupe ​bitsdonc la plage 255. Ainsi: \\  
-  * roșu (255, 0, 0) este reprezentată ca (1, 0, 0) pe procesorul grafic\\  +  * le rouge (255, 0, 0) est représenté par (1, 0, 0) sur le processeur graphique\\  
-  * galben este (1, 1, 0) și tot așa+  * le jaune est (1, 1, 0) et ainsi de suite
  
 </​note>​ </​note>​
  
-== Control aplicație ​==+== Contrôle d'​application ​==
  
-Programul rulat oferă posibilitatea vizualizării scenei create prin intermediul unei camere predefinite.+Le programme en cours offre la possibilité de visualiser la scène créée par une caméra prédéfinie.
  
 <note tip> <note tip>
-Taste de control pentru cameră +Touches ​de contrôle pour la caméra 
-  * **W, A, S, D, Q, E** - deplasare fațăstângaspatedreaptajossus +  * **W, A, S, D, Q, E** - avantgauchearrièredroitebashaut 
-  * **MOUSE RIGHT + MOUSE MOVE** - rotație cameră+  * **MOUSE RIGHT + MOUSE MOVE** - roatation de caméra
 </​note>​ </​note>​
  
  
-=== Cerințe laborator ​===+=== Exigences de laboratoire ​===
  
-  - Descărcați ​framework-ulcompilați și rulați proiectul +  - Téléchargez le framework, ​compilez et exécutez le projet 
-    * Trebuie să deschideți proiectul ​Framework_EGC.sln (folderul ​__/Visual Studio__) ​în Visual Studio ​2017 +    * Vous devez ouvrir le projet ​Framework_EGC.sln (dossier ​__/Visual Studio__) ​avec Visual Studio ​IDE 
-  - Încărcați ​un alt model 3D și randați-l în scenă la o poziție diferită față ​de cele 2 cuburi +  - Téléchargez ​un autre modèle ​3D et affichez-le dans une position différente ​de celle des deux cubes. 
-    * __/​Resources/​Models__ ​conține o serie de modele ​3D ce pot fi încărcate +    * __/​Resources/​Models__ ​contient un certain nombre ​de modèles ​3D pouvant être téléchargés 
-    * În ''​Laborator1::​Init()'' ​găsiți modul în care puteți să declarați ​(și încărcați) un nou obiect ​de tip ''​Mesh''​ +    * Dans ''​Laborator1::​Init()'' ​découvrez comment vous pouvez déclarer ​(et télécharger) un nouvel objet de type ''​Mesh''​ 
-  - La apăsarea unei taste să se schimbe culoarea ​de ștergere a ecranului +  - Appuyer sur une touche change la couleur ​de la gomme à l'​écran 
-  - La apăsarea unei taste să se schimbe obiectul afisat ​(renderla o poziție ​(să cicleze prin obiectede ex cube, teapot, sphere) +  - Lorsque vous appuyez sur une touche, modifiez l'​objet affiché ​(renduen une position ​(pour parcourir ​objetspar exemple un cube, une théière, une sphère - cube, teapot, sphere) 
-  - Să se miște prin spațiu ​un obiect oarecare la apăsarea tastelor ​W, A, S, D, EQ (pozitiv și negativ pe toate cele axe)+  - Pour déplacer ​un objet dans l'​espace en appuyant sur les touches ​W, A, S, D, E et Q (positif et négatif sur les axes)
  
  
-<note important>​Citiți cu atenție documentația evenimentelor de input din fișierul ​''​[[https://​github.com/​UPB-Graphics/​Framework-EGC/​blob/​master/​Source/​Core/​Window/​InputController.h | InputController.h]]'' ​întrucât le veți utiliza în cadrul fiecărui laborator</​note>​+<note important>​Veuillez lire attentivement la documentation des événements saisis dans le fichier ​''​[[https://​github.com/​UPB-Graphics/​Framework-EGC/​blob/​master/​Source/​Core/​Window/​InputController.h | InputController.h]]'' ​comme vous les utiliserez dans chaque laboratoire</​note>​
  
  
egc/laboratoare/fr/01.1570065443.txt.gz · Last modified: 2019/10/03 04:17 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