Você está na página 1de 19

Introduo Computao Grfica

Claudio Esperana Paulo Roma Cavalcanti

Estrutura do Curso
nfase na parte prtica Avaliao atravs de trabalhos de implementao
C / C++ OpenGL c/ GLUT

Grau (nota) baseado no xito, na qualidade e na criatividade das solues

Contedo do Curso
Introduo Grficos vetoriais e matriciais Dispositivos grficos Programao grfica com OpenGL Geometria Cmeras e projees Modelagem geomtrica Cor Iluminao local e global Colorizao (shading) Visibilidade Recorte Rasterizao Mapeamentos
Textura Rugosidade Ambiente

Tcnicas sobre imagens


Dithering Quantizao de cores Codificao

Plataforma para desenvolvimento


Ambiente Windows
Compiladores Cygwin ou Mingw32 Fonte deve ser compilvel em Linux
(Ferramentas proprietrias no so aceitveis)

Ambiente Linux
gcc / g++ Mesa (ferramentas instaladas por default na maioria das distribuies)

Bibliografia
Computer Graphics - Principles and Practice Foley - van Dam - Feiner - Hughes 2nd edition in C - Addison and Wesley Notas do Curso ministrado na Universidade de Maryland pelo Prof. David Mount ftp://ftp.cs.umd.edu/pub/faculty/mount/427/427lects.ps.gz http://www.lcg.ufrj.br/~esperanc/CG/427lects.ps.gz Apostila Prof. Paulo Roma http://www.lcg.ufrj.br/compgraf1/downloads/apostila.pdf http://www.lcg.ufrj.br/compgraf1/downloads/apostila.ps.gz

Bibliografia OpenGL
OpenGL Programming Guide, 2nd Edition. Mason Woo, Jackie Neider, Tom Davis. Addison Wesley.
http://www.lcg.ufrj.br/redbook

Manual de referncia online


http://www.lcg.ufrj.br/opengl

Stio oficial do OpenGL


www.opengl.org

Computao Grfica
Anlise (reconhecimento de padres) Modelos Matemticos Sntese Imagens

(rendering)

Modelagem

Processamento de Imagens

Disciplinas relacionadas
Computao
Algoritmos Estruturas de Dados Mtodos Numricos

Fsica
tica Mecnica

Psicologia
Percepo

Matemtica
Geometria, lgebra Linear

Artes

Aplicaes
Desenho Assistido por Computador (CAD) Desenho Geomtrico Assistido por Computador (CAGD) Sistemas de Informaes Geogrficas (GIS) Visualizao Cientfica Visualizao Mdica Educao Entretenimento

Representaes Grficas
Grficos Vetoriais
Representados por colees de objetos geomtricos
Pontos Retas Curvas Planos Polgonos

Grficos Matriciais
Amostragem em grades retangulares Tipicamente, imagens digitais
Matrizes de pixels Cada pixel representa uma cor

Dados volumtricos
Imagens mdicas Cada pixel representa densidade ou intensidade de algum campo

Representaes Vetoriais
Permitem uma srie de operaes sem (quase) perda de preciso Transformaes lineares / afim Deformaes Por que quase? Estruturas de dados utilizam pontos e vetores cujas coordenadas so nmeros reais necessrio usar aproximaes
Representao em ponto-flutuante Nmeros racionais

Complexidade de processamento = O (no vrtices / vetores) Exibio Dispositivos vetoriais Dispositivos matriciais (requer amostragem, i.e., rasterizao)

Representaes Matriciais
Representao flexvel e muito comum Complexidade de processamento = O (no de pixels) Muitas operaes implicam em perda de preciso (reamostragem)
Ex.: rotao, escala Tcnicas para lidar com o problema
Ex.: tcnicas anti-serrilhado (anti-aliasing)

Exibio
Dispositivos matriciais Dispositivos vetoriais (requer uso de tcnicas de reconhecimento de padres)

Converso entre representaes


Repr. Vetoriais

Rasterizao, Scan conversion

Reconhecimento de padres

Repr. Matriciais

Dispositivos Grficos
Dispositivos vetoriais
Terminais grficos vetoriais (obsoletos) Traadores (plotters) Dispositivos virtuais
Ex.: Linguagens de descrio de pgina (HPGL / Postscript) Rasterizao implcita

Dispositivos Matriciais
Praticamente sinnimo de dispositivo grfico Impressoras, displays

Displays
Resoluo espacial Tipicamente de 640x480 at 1600x1200 Tendncia de aumento Resoluo no espao de cor Monocromtico (preto e branco)
Tabela de cores

Praticamente restrito a PDAs e equipamentos de baixo custo Cada pixel representado por um nmero (tipicamente 8 bits de 0 a 255) que indexa uma tabela de cores (tipicamente RGB 24 bits) Poucas (ex.: 256) cores simultneas mas cada cor pode ser escolhida de um universo grande (ex.: 224) Problema da quantizao de cores Cor expressa por quantidades discretas de vermelho (red), verde (green) e azul (blue) Tipicamente 24 bits (8 bits para cada componente) Quando o nmero de bits no divisvel por 3, a resoluo do azul costuma ser menor que das outras 2 componentes

RGB

Arquitetura de Sistemas Grficos


CPU Perifricos Arquitetura Simples

Barramento (BUS)

Memria

Frame Buffer

Controlador de vdeo

Monitor

Arquitetura de Sistemas Grficos


CPU Perifricos Arquitetura com processador grfico

Barramento (BUS)

Memria do Sistema

Processador grfico

Memria

Frame Buffer Monitor Controlador de vdeo

Processador (acelerador) grfico


Hardware especializado Uso de paralelismo para atingir alto desempenho Alivia a CPU do sistema de algumas tarefas, incluindo: Transformaes
Rotao, translao, escala, etc

Recorte (clipping)
Supresso de elementos fora da janela de visualizao

Projeo (3D 2D) Mapeamento de texturas Rasterizao Amostragem de curvas e superfcies paramtricas
Gerao de pontos a partir de formas polinomiais

Normalmente usa memria separada da do sistema Maior banda

Programao Grfica
primeira vista: basta desenhar Mas ...
Uma subrotina para desenhar cada tipo de objeto Como fazer interao? Como estruturar a cena? Como controlar os atributos dos objetos? Como resolver problemas de visibilidade? Como suportar diversos dispositivos grficos? Como fazer programas independentes dos sistemas operacionais? APIs grficas (ex.: OpenGL, PHIGS, Java3D) Camadas de interface com o S.O. / sistema de janelas

Ferramentas:

Você também pode gostar