Herramientas de usuario

Herramientas del sitio


fw:ogl:glsl

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
fw:ogl:glsl [2013/03/04 22:11]
alfred creado
fw:ogl:glsl [2020/05/09 09:25] (actual)
Línea 1: Línea 1:
 ====== GLSL ====== ====== GLSL ======
 +===== Apuntes =====
 +  * [[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 =====
 +==== 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 =====
 +==== Básicos ====
 +El más simple de todos, recibe la posición y el color y los reemplaza.
 +<code c>
 +#version 150
 +in vec4 vPosition;
 +in vec4 vColor;
 +out vec4 color;
 +void main() {
 +  gl_Position = vPosition;
 +  color = vColor;
 +}
 +</​code>​
 +===== 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 =====
 +==== Básicos ====
 +<code c>
 +#version 150
 +in vec4 color;
 +out vec4  fColor;
 +void main() { 
 +    fColor = color;
 +
 +</​code>​
fw/ogl/glsl.1362435087.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)