Differences

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

Link to this comparison view

spg:laboratoare:01 [2023/10/03 14:22]
anca.morar [Geometry Shader]
spg:laboratoare:01 [2023/10/03 15:02] (current)
anca.morar [Cerințe laborator]
Line 53: Line 53:
  
 layout(triangle_strip,​ max_vertices = 4) out; layout(triangle_strip,​ max_vertices = 4) out;
-//ieșirea este un triangle strip cu maxim 4 vârfuri ​(2 triunghiuri)+//ieșirea este un triangle strip. Se vor genera ​maxim 4 vârfuri
  
 layout(location = 0) in vec2 vert_texcoord[3];​ layout(location = 0) in vec2 vert_texcoord[3];​
Line 82: Line 82:
  
  EndPrimitive();​  EndPrimitive();​
-        //directiva aceasta încheie ​o primitivă +        //directiva aceasta încheie ​primitiva ​ 
-        //în acest exemplu, ​la ieșire se vor genera ​două triunghiuri ​(cu indicii 0-1-2 și 1-2-3)+        //în acest exemplu, ​primitiva este un triangle_strip cu 4 vârfuri 
 +        //acesta este echivalent cu două triunghiuri cu indicii 0-1-2 și 1-2-3
 } }
 </​code>​ </​code>​
Line 104: Line 105:
 </​code>​ </​code>​
  
-  * De asemenea există și intrare implicită la geometry shader, numită ''​gl_in'',​ din care ne interesează ''​gl_Position'':​ <code glsl>+  * De asemeneaexistă și intrare implicită la geometry shader, numită ''​gl_in'',​ din care ne interesează ''​gl_Position'':​ <code glsl>
 in gl_PerVertex in gl_PerVertex
 { {
Line 120: Line 121:
 Pentru fiecare vârf emis din geometry shader se pot asocia coordonate textură, normală, culoare, asociate vârfului (setate înainte de fiecare apel ''​EmitVertex()''​). Pentru fiecare vârf emis din geometry shader se pot asocia coordonate textură, normală, culoare, asociate vârfului (setate înainte de fiecare apel ''​EmitVertex()''​).
 Acestea trebuie declarate ca variabile de ieșire. Acestea trebuie declarate ca variabile de ieșire.
-După cum se poate observa, valoarea lui ''​geom_texcoord''​ este actualizată înainte de fiecare apel ''​EmitVertex()'':​ +După cum se poate observa, valoarea lui ''​geom_texcoord''​ este actualizată înainte de fiecare apel ''​EmitVertex()'':<​code glsl>
- +
-<code glsl>+
 gl_Position = gl_in[0].gl_Position;​ gl_Position = gl_in[0].gl_Position;​
 geom_texcoord = vert_texcoord[0];​ geom_texcoord = vert_texcoord[0];​
Line 128: Line 127:
 </​code>​ </​code>​
  
 +Într-un geometry shader se pot emite mai multe primitive (comanda ''​EmitVertex()''​ se poate da o dată sau de mai multe ori).
 ==== Cerințe laborator ==== ==== Cerințe laborator ====
  
Line 142: Line 142:
  
  
-{{:​spg:​laboratoare:​bambusi_pe_coloane.jpg?​500| }} +{{:​spg:​laboratoare:​bambusi_pe_coloane.jpg?​650| }} 
-{{:​spg:​laboratoare:​shrink.png?500| }}+ 
 +{{:​spg:​laboratoare:​lab1_scalare.png?​650| }} 
 + 
 +{{:​spg:​laboratoare:​efect_scalare.png?650| }}
  
spg/laboratoare/01.1696332171.txt.gz · Last modified: 2023/10/03 14:22 by anca.morar
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