Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Computação Gráfica
35T56 – Sala 3E3Bruno Motta de CarvalhoDIMAp – Sala 15 – Ramal 227
DIM00972
Logística do Curso
2 avaliações Projetos práticos Grupos de duas pessoas (somente para os
projetos!!) Implementações podem ser feitas na
linguagem de sua preferência
DIM00973
Programa do Curso
Introdução Formação e representação de imagens Algoritmos de rasterização e recorte Transformações geométricas OpenGL Visualização 3D Sistemas de representação de cores Representação de curvas e superfícies
DIM00974
Programa do Curso
Modelagem de sólidos Iluminação e sombreamento Raytracing Radiosidade Algoritmos de visibilidade Animação Programação de GPUs
DIM00975
Referências
Computer Graphics: Principle and Practice. Foley, Van Dam, Feiner and Hughes, Addison Wesley, 1993
Computer Graphics with OpenGL, 3rd Ed. Hearn, Baker. PrenticeHall, 2004
OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 1.4, Fourth Edition. Shreiner, D., M. Woo, J. Neider and T. Davis. AddisonWesley, 2003. http://www.rush3d.com/reference/openglredbook1.1/
DIM00976
Cronograma Inicial
Data Assunto Data Assunto21/02/06 Introdução 25/04/06 Iluminação e sombreamento23/02/06 27/04/06Ray-tracing02/03/06Aquisição e Representação de Imagens 02/05/06PBRT07/03/06Algoritmos de rasterização e recorte 04/05/06Acelerando o ray-tracing09/03/06Transformações geométricas 09/05/06Revisão14/03/06OpenGL 11/05/06Prova16/03/06Aula prática de OpenGL 16/05/06Radiosidade21/03/06Visualização tridimensional 18/05/06Radiosidade23/03/06Visualização tridimensional 23/05/06Animação28/03/06Sistemas de representação de cores 25/05/06Animação30/03/06Prova 30/05/06Programação de GPUs04/04/06Representação de curvas e superfícies 01/06/06Programação de GPUs06/04/06Representação de curvas e superfícies 06/06/06Acompanhamento dos projetos11/04/06Representação de curvas e superfícies 08/06/06Acompanhamento dos projetos13/04/06Semana Santa 13/06/06Apresentação de Trabalhos18/04/06Modelagem de sólidos 15/06/06Apresentação de Trabalhos20/04/06Modelagem de sólidos 20/06/06Prova final
DIM00977
Introdução
O que é computação gráfica? Como evoluiu a computação gráfica? Quais as áreas de aplicação em que a
computação gráfica é utilizada?
DIM00978
Introdução
Geração de imagens (possivelmente realísticas) de cenas virtuais usando computadores. Neste contexto se refere aos algoritmos, construções conceituais e conhecimentos matemáticos necessários para gerar cenas virtuais bi ou tridimensionais
A síntese de figuras artificiais – a criação de imagens a partir de descrições
DIM00979
Relacionamento com outras áreas afins
DescriçõesImagens
VisãoComputacional
Computação Gráfica
Processamento de Imagens
DIM009710
História da Computação Gráfica – Anos 60 DAC1 (Design Augmented by Computers) –
GM e IBM Sketchpad (1961) – Ivan Sutherland (MIT) –
Primeiro programa gráfico interativo Spacewar (1961) – Steve Russel (MIT) –
Primeiro vídeogame Primeiras aplicações de visualização científica
– Bell Labs., Boeing, etc. Primeiras animações e algoritmos de
visibilidade (University of Utah)
DIM009711
Evolução do Hardware Gráfico – Anos 60
Minicomputador interativo (PDP1, da DEC) – 1960
Caneta ótica para o Sketchpad (MIT) – 1961
Terminal gráfico (IBM 2250) – 1965 HeadMounted Display (Sutherland,
MIT) – 1966
DIM009712
História da Computação Gráfica – Anos 70
SCANIMATE (CIC) – programa para leitura (através de scanners) e manipulação de artwork já existente
Gouraud shading (1971) – interpolação de cores nos polígonos
Fundação da III, LucasFilm, Robert Abel & Associates, digital Effects, MAGI, Systems Simulation, etc.
Primeiro SIGGRAPH (1973) Texturemapping, Zbuffering, renderização de
superfícies curvas (Catmull, UU) 1974
DIM009713
História da Computação Gráfica – Anos 70 Phong Shading (Phong, UU) – 1974 Fractais (Mandelbrot, IBM) – 1975 BumpMapping, environmentMapping (Blinn,
JPL) – 1976 Primeira edição da Computer Graphic World
(CGW) – 1977 Antialiasing (Blinn, JPL) – 1977 Primeiros efeitos especiais produzidos por CG
em longas metragem (Star Wars – 1977, Alien – 1979)
DIM009714
Evolução do Hardware Gráfico – Anos 70 Primeiros microcomputadores (Altair 8800,
MITS) – 1971 Fundação da Atari – 1971 e criação do primeiro
videogame comercial (Pong) – 1972 Primeiros framebuffers – 1972 Primeiro computador pessoal com display
gráfico (e mouse) Xerox Alto (Xerox) – 1972 Fundação da Apple – 1975
DIM009715
História da Computação Gráfica – Anos 80
Raytracing (Whitted) – 1980 REYES, primeiro renderer da LucasFilm,
que evoluiu para o Renderman (Carpenter, LucasFilm) – 1981
Autocad 1 – 1982 Primeiro morphing (Brigham) – 1982 Tron (1982), The Last Starfighter (1984),
Young Shelock Holmes (1985) Wavefront – Primeiro software comercial
para animação 3D – 1984
DIM009716
História da Computação Gráfica – Anos 80
Radiosidade (Goral, Greenberg, Cornell) – 1984
Shading languages (Perlin, NYU) – 1985 TOPAS – Primeiro software de animação
(de boa qualidade) para computadores pessoais – 1986
Animação forense – 1986 Divisão gráfica da LucasFilm se separa
criando a Pixar – 1986 Renderman – 1988
DIM009717
Evolução do Hardware Gráfico – Anos 80
Lançamento do IBM PC – 1981 Fundação da SGI – 1982 Dataglove – 1983 Placa de vídeo Targa – 1984 VPL Research – Primeira firma
especializada em realidade virtual – 1985
Macintosh – 1985
DIM009718
História da Computação Gráfica – Anos 90
3D Studio (Autodesk) – 1990 Programas de pintura
impressionista – NPR – (Haeberli) – 1990
Terminator 2 – 1991 Doom – Primeiro jogo 3D para
múltiplos jogadores – 1993 Programa de ilustração em
nanquim (Salesin et al.) 1994
DIM009719
História da Computação Gráfica – Anos 90
Toy Story – Primeiro longametragem completamente (??)gerado por computador – 1995
Cassiopéia (1996) Maya (Wavefront) – 1998
DIM009720
Evolução do Hardware Gráfico – Anos 90 Playstation (Sony) – 1995 Nintendo 64 – 1996 NVidia RIVA 128 – 1997 NVidia RIVA TNT (primeira a suportar multi
texturas) – 1998 NVidia GeForce 256 (primeira GPU) – 1999 NVidia GeForce2 Go (primeira GPU para
laptops) – 2000 NVidia GeForce3 (primeira GPU
programável) – 2001
DIM009721
História da Computação Gráfica – Atual (Anos 2000)
Pointrendering Programação em GPUs Crowd simulation Técnicas mais avançadas para
representar fenômenos naturais, como fogo, água, raios, etc.
DIM009722
Evolução do Hardware Gráfico – Atual (Anos 2000)
NVidia GeForce3 (primeira GPU programável) – 2001
Shading languages NVidia GeForce FX – 2002 GeForce FX 5900 – 2003 GeForce 6800 – 2004 GPU ultrapassa a CPU em número de
transistores Cinema digital
DIM009723
Aplicações de Computação Gráfica Entretenimento
DIM009724
Aplicações de Computação Gráfica Educação
DIM009725
Aplicações de Computação Gráfica Simulação
DIM009726
Aplicações de Computação Gráfica Treinamento Realidade Virtual
DIM009727
Aplicações de Computação Gráfica Visualização
DIM009728
Aplicações de Computação Gráfica Diagnósticos
Médicos
DIM009729
Aplicações de Computação Gráfica Diagnósticos
Médicos
DIM009730
Softwares Utilizados em Computação Gráfica
OpenGL (Open Graphics Library) – Atualmente na versão 2.0. Padrão de referência de placas gráficas
DirectX Open Inventor Renderman Maya 3DMax Blender
DIM009731
OpenGL
Interface de software para o hardware gráfico
Permite que programas desenvolvidos em uma máquina com uma placa gráfica funcionem em outras máquinas com diferentes placas
DIM009732
OpenGL
DIM009733
OpenGL
OpenGL Utility Library (GLU) – Contém rotinas que usam comandos OpenGL para mudar projeções, desenhar superfícies, etc. (acompanha OpenGL)
OpenGL Extension to the X Window System (GLX) – Para uso com X Window
The OpenGL Utility Toolkit (GLUT) – Interface de programação para a escrita de programas gráficos portáteis
DIM009734
OpenGL
Extensões – Mecanismo utilizado para a incorporação de novas funções ao padrão OpenGL
Geralmente, extensões propostas por companhias como Sun, Nvidia, ATI, são incorporadas no padrão aprovado pela ARB (Architecture Review Board) da OpenGL
GLEW (The OpenGL Extension Wrangler Library) – Ajuda na inicialização e no desenvolvimento de aplicações portáteis
DIM009735
DirectX
API da Microsoft Windows API usada para acessar funções de baixo nível
Direct Draw – Toda renderização passa por ele Direct 3DRM – Sistema de alto nível baseado
em objetos e frames para programas 3D Direct 3DIM – Suporte 3D de baixo nível para
DirectX DirectX Graphics – A partir do DirectX 8.0, os
três sistemas acima foram unidos no DirectX Graphics
DIM009736
Open Inventor
Open Inventor é uma biblioteca orientada a objeto baseada no OpenGL que implementa objetos e métodos para a criação de aplicações gráficas tridimensionais interativas
Considerado por muitos como a biblioteca padrão para visualização tridimensional e software de simulação visual na comunidade científica
DIM009737
Open Inventor
Open Inventor oferece: Objetos e um modelo de
eventos para interação com o usuário
Componentes de aplicações de alto nível para a criação e edição de cenas 3D
Impressão e conversão de dados para vários formatos
DIM009738
Open Inventor (Coin)
Coin implementa a API do Open Inventor
Gratuita, com versões para Unix, Linux, BSD, Mac OS e Windows
Com bindings para Qt, Win32, Xt/Motif e Mac OS X GUI
DIM009739
Estado da Arte em Computação Gráfica Simulação de fluidos, fumaça,
viscosidade Renderização nãofotorealista (NPR) Renderização baseada em imagens Renderização baseada em vídeos Simplificação e deformação de malhas
tridimensionais
DIM009740
Estado da Arte em Computação Gráfica Caracterização e extração de
movimento para animação Programação de unidades de
processamento gráfico (GPUs) Modelagem interativa Renderização de áudio Animação de personagens
influenciada por dados