Differences

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

Link to this comparison view

egc:laboratoare:06 [2017/11/02 10:32]
florin_eugen.iancu [Cum legam un obiect geometric la shader?]
egc:laboratoare:06 [2021/11/19 13:08] (current)
victor.asavei [Cerinte laborator]
Line 1: Line 1:
 ===== Laboratorul 06 ===== ===== Laboratorul 06 =====
  
 +**Video Laborator 6**: https://​youtu.be/​f7q2TGCRly0 \\
 +**Autor**: [[maria_anca.balutoiu@upb.ro | Anca Băluțoiu]]
 ==== Banda Grafica ==== ==== Banda Grafica ====
  
Line 111: Line 113:
  
   * **shader_program** reprezinta ID-ul programului shader compilat pe placa video   * **shader_program** reprezinta ID-ul programului shader compilat pe placa video
-  * in cadrul framework-ului de laborator ID-ul se poate obtine apeland functia ''​shader->​GetProgramID()''​ sau direct accesand ​vriabila ​membru ''​shader->​program''​+  * in cadrul framework-ului de laborator ID-ul se poate obtine apeland functia ''​shader->​GetProgramID()''​ sau direct accesand ​variabila ​membru ''​shader->​program''​
  
  
Line 194: Line 196:
 </​note>​ </​note>​
  
-  - Descarcati [[https://​github.com/​UPB-Graphics/​Framework-EGC/​archive/​master.zip|framework-ul de laborator]]+  - Descarcati [[https://​github.com/​UPB-Graphics/​gfx-framework/​archive/​master.zip|framework-ul de laborator]]
   - Completati functia ''​RenderSimpleMesh''​ astfel inca sa trimiteti corect valorile uniform catre Shader   - Completati functia ''​RenderSimpleMesh''​ astfel inca sa trimiteti corect valorile uniform catre Shader
     * Se interogeaza locatia uniformelor "​Model",​ "​View"​ si "​Projection"​     * Se interogeaza locatia uniformelor "​Model",​ "​View"​ si "​Projection"​
Line 200: Line 202:
     * 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 Y si colorat variat     * 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 Y si colorat variat
   - Completati Vertex Shaderul   - Completati Vertex Shaderul
-    - Se de clara atributele de intrare pentru ''​Vertex Shader''​ folosind layout location <code glsl>+    - Se declara ​atributele de intrare pentru ''​Vertex Shader''​ folosind layout location <code glsl>
  layout(location = 0) in vec3 v_position;  layout(location = 0) in vec3 v_position;
- // same for the rest of the attributes+ // same for the rest of the attributes ​( check Lab6.cpp CreateMesh() ); 
 </​code>​ </​code>​
     - Se declara atributele de iesire catre ''​Fragment Shader''​ <code glsl>     - Se declara atributele de iesire catre ''​Fragment Shader''​ <code glsl>
Line 223: Line 226:
  out_color = vec4(frag_color,​ 1);  out_color = vec4(frag_color,​ 1);
 </​code>​ </​code>​
-  - Sa se primeasca toate atributele trimise de catre vertex shader conform locatiilor utilizate in functia ''​Laborator6::​CreateMesh''​ 
   - Sa se utilizeze normala vertexilor pe post de culoare de output in cadrul Fragment Shader-ului   - Sa se utilizeze normala vertexilor pe post de culoare de output in cadrul Fragment Shader-ului
     * Inspectati de asemenea structura ''​VertexFormat''​ pentru a intelege ceea ce se trimite pe fiecare pipe     * Inspectati de asemenea structura ''​VertexFormat''​ pentru a intelege ceea ce se trimite pe fiecare pipe
   - Sa se interschimbe **pipe-ul 1** cu **pipe-ul 3**. Trimiteti normala pe **pipe-ul 3** si culoarea vertexului pe **pipe-ul 1**   - Sa se interschimbe **pipe-ul 1** cu **pipe-ul 3**. Trimiteti normala pe **pipe-ul 3** si culoarea vertexului pe **pipe-ul 1**
     * Se inspecteaza rezultatul obtinut     * Se inspecteaza rezultatul obtinut
-  - Bonus: sa se trimita timpul aplicatiei, si sa se varieze culoarea (unul sau mai multe canale de culoare) dupa o functie de timp (trigonometrica etc.)+  - Bonus: sa se trimita timpul aplicatiei ​(Engine::​GetElapsedTime()), si sa se varieze ​pozitia si culoarea (unul sau mai multe canale de culoare) dupa o functie de timp (trigonometrica etc.)
  
 <​hidden>​ <​hidden>​
 +  - Sa se primeasca toate atributele trimise de catre vertex shader conform locatiilor utilizate in functia ''​Laborator6::​CreateMesh''​
 **[Bonusuri posibile]** **[Bonusuri posibile]**
   * displacement in vertex shader   * displacement in vertex shader
egc/laboratoare/06.1509611556.txt.gz · Last modified: 2017/11/02 10:32 by florin_eugen.iancu
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