¿Cómo empiezo con OpenGL ES en Android?

Ir a través de algunas presentaciones que describen una visión general de OpenGL Graphics, por ejemplo
OpenGLES – Programación de gráficos en Android (Divulgación: Mi charla en la conferencia GDG)

A alto nivel, así es como funciona la canalización de gráficos

1) Se describe la geometría del modelo 3D.
2) La geometría se divide en triángulos. Las transformaciones que se aplican al modelo (es decir, los triángulos del modelo) se denominan transformaciones del modelo.
3) Tenemos una cámara virtual correspondiente al ojo. La transformación aplicada en la cámara se llama Ver transformaciones
4) Para dar un efecto 3D, se aplica una proyección en perspectiva que convierte el modelo 3D en espacio 2D. Estos se llaman transformaciones de proyección
5) Las transformaciones de proyección de vista de modelo transforman los objetos y los colocan en el espacio de la pantalla. Estos están descritos por matrices MVP
6) Rasterice los triángulos para obtener los píxeles (se llaman fragmentos hasta llegar a la etapa final)
7) Los fragmentos están sombreados. Puede ser tan simple como usar colores interpolados o complejos (aplique iluminación y texturas para obtener realismo)
8) Los fragmentos se combinan (mezclan) para obtener un solo píxel. La combinación puede ser cualquier operación arbitraria como la fusión o tan simple como mostrar el píxel más cercano al observador. Esta fase de mezcla combina los fragmentos generados por (posiblemente varias primitivas que se superponen y calculan el color final

Obtenga más información sobre la canalización de gráficos de OpenGL Basics

Ahora debe darse cuenta a un nivel muy alto, hacemos lo siguiente
1. Transformación : transforma la geometría en espacio de pantalla
2. Rasterización : rasteriza los píxeles (o fragmentos)
3. Aplicando Iluminación y Texturizado
4. Mezcle los fragmentos a un solo color.
5. Los sombreadores son códigos definidos por el usuario que se utilizan para personalizar la canalización.
Ampliaremos cada una de estas secciones en detalles

Transformación
Mire algunos videos introductorios, por ejemplo, este video de Samsung brinda una descripción general de las transformaciones

Familiarícese con las transformaciones que ocurren a alto nivel (estas son transformaciones de modelo, vista y proyección). También esté familiarizado con términos como Ver Frustum. Algunas matemáticas básicas ayudarán a saber lo que está sucediendo en Diary of a Graphics Programmer. Opcionalmente, si desea conocer más detalles y la programación matemática GLSL / Transformaciones de vértices

Ahora empieza a leer artículos
Una introducción a OpenGL moderno. Tabla de contenido
Página sobre Ntu
Página sobre Ntu
OpenGL
La tubería gráfica básica

RASTERIZACIÓN
La rasterización es simplemente el proceso de encontrar qué píxeles se encuentran dentro del triángulo. Podemos decir que solo estamos coloreando los triángulos. Si los atributos de color en los vértices son los mismos, podemos colorear uniformemente la región. De lo contrario, los atributos en los vértices deben ser interpolados. Vea una demostración del triángulo interpolado en openGL

ILUMINACIÓN
Recuerde que el rasterizador solo interpola el color. Para la mayoría de las aplicaciones esto es suficiente, pero en presencia de luz necesitamos modelos más sofisticados. El efecto de la luz se captura utilizando ecuaciones de sombreado. La iluminación más simple es el sombreado plano. Hay modelos matemáticos avanzados como Phong / Gourard.

Obtenga una descripción general de la iluminación de
opcionalmente si desea aprender Iluminación en detalle, vea el video de Barbara Hecker

Cubre diferentes modelos de iluminación.

Mapeo de texturasAprenda un mapeo básico de texturas aquí
Página en Csusb
Opcionalmente, también puede sumergirse en el mapeo de texturas avanzado:
Mapeo avanzado de texturas

Mezcla La fase de mezcla combina los fragmentos generados por (posiblemente varias primitivas que se superponen y calculan el color final
Aprenda sobre los diferentes modos de fusión aquí
Efectos de sombreado: modos de fusión

También necesitamos eliminar partes de esas superficies que están parcialmente ocultas por otras superficies. Estas se llaman superficies ocultas. Remoción de superficie oculta. Esto se hace usando el buffer de profundidad

SHADERS
Lea cómo se reemplaza la funcionalidad fija de la tubería mediante sombreadores
Tutorial GLSL
Ejemplos de sombreadores

LIBROS: El libro de Peter Shirely me pareció muy bueno para aprender los conceptos de los gráficos por computadora. La mayoría de los libros se sumergen en los detalles sin dar la motivación. Shirley da buenos antecedentes de los conceptos.

Fundamentos de gráficos por computadora: Peter Shirley, Michael Ashikhmin, Steve Marschner: 9781568814698: Amazon.com: Libros
VIDEOS ver cursos como Gráficos en línea (Berkeley CS 184) Videos o NPTEL

Ver algunos videos en Computer Graphics Series por el Dr. Sukhendu das

y también pocos videos relacionados en la lista de reproducción

Suscríbete al canal de YouTube Gráficos por computadora. La mayoría de los videos son generales y no informativos como conferencias. Pero son motivadores. Este video también es muy general, pero puede interesarte si te gusta la programación de juegos.

POBLACIÓN
Mira demostraciones de cómo funcionan las cosas. Hay muchas demostraciones que le permiten cambiar, por ejemplo, las matrices de proyección de la vista del modelo, los parámetros de iluminación. Una de las mejores demos es de Nate Robbins. Obtenga las demostraciones OpenGL de Nate Robbin y cambie los parámetros y vea cómo afecta el renderizado.

Tener programación OpenGL como referencia. Parece que hay cientos de llamadas OpenGL. Es fácil de aprender si se desglosa en categorías. Esta página los ha resumido muy bien. Guía de referencia rápida de OpenGL

Idealmente, debe instalar algún marco en su sistema local, pero si desea una demostración web rápida, use

Demos web
Las lecciones | Learning WebGL
WebGL Shader Lab – Estructura codificada
Lección 0: Introducción a WebGL u otros marcos
Editor en línea WebGL GLSL Shader

PRÁCTICA OpenGL USANDO GLUT / FreeGLUT

OpenGL paso a paso tiene algunos ejercicios. Prueba algunos de ellos. Instalar GLUT
La página en Ntu ayuda a instalar el exceso. Pruebe algunos controles de teclado y mouse
Código fuente de manejo de eventos del mouse en OpenGL. Pruebe alguna animación, por ejemplo, Bola en movimiento. Aplicar textura usando
Programación OpenGL / Intermedio / Texturas

Obtenga el código OpenGL ejecutándose con Shaders. Mira esto como referencia. Página en Csusb. Escribe tu propio sombreador de fragmentos para dibujar un círculo
Fragment Shader Introducción. Escriba su propio sombreador para iluminación usando
WebGL Lección 13 – iluminación por fragmento y múltiples programas

PRÁCTICA OpenGLESOpenGLES es un subconjunto de OpenGL. Desprecia algunas funciones como glBegin / glEnd que se usa para describir la geometría. Obtenga muestras de OpenGLES trabajando en Android

Lección uno de Android: Primeros pasos.

En OpenGLES, la geometría se especifica usando Vertex Buffers. Obtenga más información al respecto aquí Capítulo 5. Objetos en profundidad. Pruebe también cosas avanzadas en Android, por ejemplo, Android Lección cuatro: Introducción a la textura básica

usuarios de iPhone
OpenGL ES desde cero, Parte 2: Una mirada al dibujo simple
Todo sobre OpenGL ES 2.x – (parte 2/3)
Guía de programación de OpenGL ES para iOS

RECURSOS ADICIONALES Aunque a OpenGL no le interesan las herramientas de modelado, es bueno entender la descripción general de cómo se hace. Solo eche un vistazo rápido a Page en Cssb

Puede sumergirse en las matemáticas si está interesado Página en Essentialmath. Las coordenadas homogéneas se utilizan para representar vértices.

Si desea un conocimiento profundo, lea Un viaje a través de Graphics Pipeline 2011, parte 1 y otras partes

Y vea las conferencias en profundidad de John Owens (UCDavis)
(este está en la descripción general de Pipeline, pero también en Rasterización, etc.)

Tengo una publicación de blog que explica cómo puede comenzar a renderizar en OpenGL ES 2.0 (no 1.0 / 1.1):

http://blog.shayanjaved.com/2011

More Interesting

¿Cuáles son los navegadores web más rápidos para teléfonos inteligentes Android?

¿Qué preguntas se harían en una entrevista para un trabajo en el equipo de Android?

Con el hardware comenzando a parecerse bastante, ¿serán las líneas de batalla finales entre la experiencia del usuario de iOS 8 y Android L?

¿Cuál es el mejor sistema operativo?

¿Por qué se percibe que la reflexión es lenta en Android?

¿Cuál es la mejor manera de sincronizar Google Bookmarks con mi teléfono Android?

¿Cuál es la probabilidad de que Facebook tenga éxito con un teléfono inteligente?

¿Samsung depende más del sistema operativo Android de Google o Google depende más de Samsung?

¿Cuál es la mejor aplicación de recarga gratuita para Android?

¿Cómo puede un desarrollador de PHP con 4.5 años de experiencia cambiar de carrera de PHP a Python / Android?

¿Qué aplicaciones de Islam (iOS y Android) usan las personas?

¿Cuál es la mejor biblioteca de gráficos para Android y cómo puedo aprenderla más rápido?

¿Qué beneficios específicos de la experiencia del usuario podemos esperar del primer teléfono Android interno de Motorola?

¿El Nexus S (u otros teléfonos con capacidad NFC) le permite al propietario elegir una aplicación que no sea su aplicación de billetera predeterminada, como Google Wallet, para manejar sus pagos móviles?

MacBook o Samsung Chromebook Plus? ¿Cuál es la diferencia entre el sistema operativo Android y macOS en cuanto a capacidades?