GLKit
Introdução ao OpenGL ES 2.0 e GLKit
Nilson Souto - xissburg
Slide 2
Slide 2 text
Conteúdo
O que é OpenGL
Motivação - Para que serve?
GLKit - Introdução
Exemplo prático
Conclusão
Dúvidas?
Slide 3
Slide 3 text
O que é OpenGL
Open Graphics Library
OpenGL é uma interface de software para o
hardware gráfico [The Redbook]
Possui mais de 200 funções que permitem
controlar o hardware gráfico
OpenGL ES: subconjunto do OpenGL para
dispositivos móveis
Slide 4
Slide 4 text
Motivação
Onde e quando podemos utilizar o OpenGL?
Jogos e aplicações de visualização
tridimensional
Processamento de imagens acelerado em GPU
Efeitos e transições impossíveis/inviáveis de
se fazer com UIKit, Core Graphics, Core
Animation...
Slide 5
Slide 5 text
Motivação
Fabien Sanglard’s dEngine
Slide 6
Slide 6 text
Motivação
Infinity Blade II - Epic Games, Chair Entertainment
Slide 7
Slide 7 text
Motivação
Infinity Blade II - Epic Games, Chair Entertainment
Slide 8
Slide 8 text
Motivação
XBPageCurl
Slide 9
Slide 9 text
GLKit
Framework disponível a partir do iOS 5.0
Facilita no desenvolvimento de apps que
fazem uso do OpenGL
Fornece classes utilitárias para carregar
texturas, aplicar efeitos básicos e realizar
operações entre vetores, matrizes e
quaternions
Slide 10
Slide 10 text
GLKit - Classes
GLKView: subclasse de UIView onde o
OpenGL apresenta seu framebuffer principal
GLKViewController: subclasse de
UIViewController que implementa o loop de
renderização
GLKTextureLoader: cria texturas diretamente
de imagens
Structs: GLKVector2/3/4, GLKMatrix3/4,
GLQuaternion
Slide 11
Slide 11 text
GLKit - OpenGL ES 2.0
Um elemento fundamental do OpenGL é o
triângulo
O triângulo é uma forma geométrica
composta por 3 vértices e 3 arestas/lados
que são segmentos de reta [Zeidler, Eberhard
2004 - Oxford User's Guide to Mathematics]
Slide 12
Slide 12 text
GLKit - OpenGL ES 2.0
Triângulo
Slide 13
Slide 13 text
GLKit - OpenGL ES 2.0
No OpenGL representamos triângulos com
arrays de vértices e arrays de índices
Cada vértice possui posição, cor, coordenadas
de textura, vetor normal, etc
O array de índices possui inteiros que fazem
referência aos vértices do array de vértices
Os índices são dispostos em um array onde
cada 3 índices em sequencia define um
triângulo
GLKit - OpenGL ES 2.0
Antes de desenhar triângulos no OpenGL ES
2.0 temos que fornecer um vertex shader e
um fragment shader
Vertex shader é um programa que é
executado na GPU para cada vértice
Fragment shader é um programa que é
executado na GPU para cada fragmento
Ambos são escritos em GLSL (GL Shading
Language)
Conclusão
O GLKit de fato facilita a programação de
apps nos livrando de escrever código
boilerplate
O GLKMath traz um um bom conjunto de
classes de álgebra linear tirando a
necessidade de utilizar alguma outra library
Infelizmente só podemos utilizá-lo no iOS 5
Slide 19
Slide 19 text
Referências
GLKit Framework Reference - Apple Inc. 2011
Ray Wenderlich - http:/
/raywenderlich.com
The OpenGL Programming Guide - The
Redbook