Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
fw:ogl:glsl [2013/03/04 22:23] alfred [GLSL] |
fw:ogl:glsl [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 2: | Línea 2: | ||
| ===== Apuntes ===== | ===== Apuntes ===== | ||
| * [[fw:ogl:ogl4&#creacion_de_un_programa_de_shaders|Cómo compilar un programa de shaders]] | * [[fw:ogl:ogl4&#creacion_de_un_programa_de_shaders|Cómo compilar un programa de shaders]] | ||
| + | |||
| + | Los vertex shader mapean los vértices en la pantalla. Fragment shaders, en cambio, se encargan de los colores y del //rasterizing// de los fragmentos (porciones) de los triangulos resultantes. | ||
| + | |||
| + | ==== Tipos de variables ==== | ||
| + | |||
| + | * **in**, enlazan datos de fases anteriores (en versiones antiguas también eran llamadas **attribute** para los vertex shaders). | ||
| + | * **out**, enlanzan datos para fases posteriores. | ||
| + | Las variables **varying**, en versiones anteriores, eran las out de los vertex shaders y las in de los fragment shaders. | ||
| ===== Vertex Shaders ===== | ===== Vertex Shaders ===== | ||
| + | ==== Conceptos ==== | ||
| + | === Coordenadas de pantalla === | ||
| + | En la pantalla las coordenadas del framebuffer (-1,-1) y (1,1) corresponden a la parte baja-izquierda y alta-derecha respectivamente. Los VAO ya mapean los vértices en esas coordenadas. | ||
| + | ==== Variables ==== | ||
| + | === gl_Position === | ||
| + | |||
| + | ==== Sintaxis entre versiones ==== | ||
| + | === 150 === | ||
| + | |||
| + | === 330 === | ||
| + | |||
| ===== Ejemplos de Vertex Shaders ===== | ===== Ejemplos de Vertex Shaders ===== | ||
| ==== Básicos ==== | ==== Básicos ==== | ||
| Línea 17: | Línea 36: | ||
| </code> | </code> | ||
| ===== Fragment Shaders ===== | ===== Fragment Shaders ===== | ||
| + | ==== Variables ==== | ||
| + | Las variables de entrada h an de tener el mismo nombre que en el Vertex Shader. | ||
| + | === gl_FragColor === | ||
| + | Vector de cuatro elementos que asigna el color RGBA para cada fragmento. | ||
| + | ==== Sintaxis entre versiones ==== | ||
| + | === 150 === | ||
| + | |||
| + | === 330 === | ||
| + | |||
| ===== Ejemplos de Fragment Shaders ===== | ===== Ejemplos de Fragment Shaders ===== | ||
| ==== Básicos ==== | ==== Básicos ==== | ||