This shows you the differences between two versions of the page.
|
egc:laboratoare:06 [2017/11/02 15:13] radu_florentin.boeru [Cerinte laborator] |
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 (Engine::GetElapsedTime()), si sa se varieze pozitia sau 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 | ||