Notas Rápidas – OpenGL ES. Introducción Parte 1

Diferencia entre OpenGL y OpenGL ES

El API se OpenGL es más grande y complejo, y OpenGL ES es un API hecho para dispositivos constreñidos. Lo que hace el API de OpenGL ES quite la redundancia del API OpenGL pero a la vez mantiene su compatibilidad. Las características del API de OpenGL ES es la reducción del consumo de energía de los dispositivos e incremento en la velocidad de ejecución de los shaders.

Pipeline o estructura

pipeline

Vertex Shader

Métodos programables de propósitos general para operar vértices.

Para la entrada de datos al Vertex Shader hay:

Atributos (attributes). Son los datos por vértice usando un arreglo de vectores.

Uniformes (uniform). Datos constantes usados por el Vertex shaders.

Muestreos (samplers). Un tipo especifico de uniformes que representa la texturas por el vertex shader. Los samples en un vertex shader son opcionales.

Programa de Shader. Es el código fuente o ejecutable que describe las operaciones que sera ejecutado por el vértice.

Los datos de salidas del Vertex Shader son variables varying (de diversidad).

Son calculadas en la primera etapa de rasterización por cada fragmento y son pasadas como datos de entradas del fragment shader.

El mecanismo usado para generar la variable diversa para cada fragmento de diversos valores asignados ara cada vértice primitivo es llamado interpolación.

vertex_shader

Operaciones de Vertex Shader

  • Posición de matriz
  • Ecuación para generar luces computadas
  • Color por vértice
  • Generar o transformare coordenadas

Ejemplo de un Vertex Shader

// Los uniformes son usados por el vertex shader
uniform mat4 u_mvpMatrix; // Almacena la matriz de 
                          // Modelo-Vista-Proyección. 
                          // Convierte la proyección 
                          // del espacio del modelo 
                          // para normalizar el espacio 
                          // divido

// Atributos de datos de entrada del Vertex Shader
attribute vec4 a_position; // Valor de posición
attribute vec4 a_color; // Entrada del vértice de color
varying vec4 v_color; // Salida del vértice de color

// El punto de entrada donde ejecuta las instrucciones
// del vertex shader.
void main()
{
   v_color = a_color;
   gl_position = u_mvpMatrix * a_position; // Se pasa
                    // la multiplicación del vector de
                    // posición del objeto, lo pasa a 
                    // gl_position. 
}
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s