Escolar Documentos
Profissional Documentos
Cultura Documentos
Estrutura do Curso
nfase na parte prtica Avaliao atravs de trabalhos de implementao
C / C++ OpenGL c/ GLUT
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
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
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)
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
Barramento (BUS)
Memria
Frame Buffer
Controlador de vdeo
Monitor
Barramento (BUS)
Memria do Sistema
Processador grfico
Memria
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
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: