Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
1
Computação Gráfica e Processamento de Imagens
Prof. Dr. Julio Arakaki ([email protected])
www.pucsp.br/~jarakaki
Ciência da Computação
PUC-SP
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
2
O que é Computação Gráfica e Proc. de Imagens?
Computação Gráfica
criação, manipulação e armazenamento de modelos
e imagens
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
3
O que é Computação Gráfica e Proc. de Imagens?
• O termo Computação Gráfica, foi utilizado por William Fetter da
empresa Boeing em 1960.
• Tudo que está relacionado com a representação visual no
computador, incluindo:
– Interfaces Gráficas - GUI (“Graphics User Interface”)
– Imagens e processamento no computador
– 3D (efeitos especiais, jogos, animação, …)
– Visualização científica
– Algoritmos, teorias (física, matemática, computação, …)
– Dispositivos gráficos, “hardware” (placas gráficas, monitores, …)
– …
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
4
O que é Computação Gráfica e Proc. de Imagens?
Relacionada com a criação, armazenamento e manipulação de
modelos e imagens, onde:
Imagens
Modelos
(Matemático,
…)
Análise de Imagem (reconhecimento de “pattern”.
Visão computacional)
Síntese de Imagem (Renderização,
visualização)
Modelagem
(geométrica)
Processamento
de Imagem
Objetos
físicos,
reais
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
5
Os modelos são provenientes de vários campos, incluindo a física,
matemática, artístico, biológico, entre outras.
O que é Computação Gráfica e Proc. de Imagens?
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
6
- Síntese de imagens: envolve técnicas destinadas a
criação e manipulação de imagens a partir de modelos
matemáticos e geométricos
- Análise de imagens: é o processo inverso da síntese.
Neste caso a imagem existe e de alguma forma é passada
ao computador através de equipamentos como mesas
digitalizadoras, câmeras, “scanner”. Ex: extração de
características para visão robótica.
- Processamento de imagens: uma imagem capturada
conterá ruídos (“noise”). Algoritmos de processamento
de imagens (filtros) para melhorar as características
visuais da imagem, como aumentar o contraste, foco,
reduzir ruídos e distorções.
O que é Computação Gráfica e Proc. de Imagens?
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
7
O que é Computação Gráfica e Proc. de Imagens?
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
8
Processamento de imagens
Análise de imagens
O que é Computação Gráfica e Proc. de Imagens?
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
9
O que é Computação Gráfica Interativa ?
• O usuário controla o conteúdo, a estrutura e a aparência dos objetos
apresentados, através de uma realimentação (“feedback”) visual.
Usuário
Aplicação
Tela
entrada imagem
“feedback”
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
10
O que é Computação Gráfica Interativa ?
• Os componentes básicos de um sistema gráfico interativo são: entrada
(“mouse”, “tablet”, “light-pen”, “scanner”, …), processamento,
armazenamento e visualização/saída (tela, impressora, “plotter”, …)
Primeiro sistema gráfico
verdadeiramente interativo, foi
implementado por Ivan
Sutherland em 1963 (tese de
PhD.)
Utilizava um monitor tipo CRT,
“light-pen” e painel com
teclado de funções)
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
11
Onde trabalhar com CG e PI?
Get a Job working for PIXAR
Get a Job working for George
Lucas at Industrial Light and
Magic.
Program and
Design Computer
Games
Design Operating
Systems
Applications Programming
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
12
Quem trabalha com CG e PI
Usuários de programas/aplicativos
– usam para produzir desenhos e imagens
Customizadores
– adaptam programas existentes
Desenvolvedores/Programadores de aplicações específicas
– desenvolvem “Reconhecedor de Digitais”, Editor de
Circuito Integrado, AutoCAD, Corel, ...
Desenvolvedores de ferramentas
– desenvolvem Java 3D, OpenGL, DirectX, ...
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
13
Aplicações
Computação
Gráfica
Outras ...
Física
Medicina
Psicologia
Artes
Matemática
Eng.
Eletrônica
• Arte: Efeitos especiais, modelagens criativas, esculturas e pinturas.
• Medicina: Exames, diagnósticos, estudo, planejamento de
procedimentos.
• Arquitetura: Perspectivas, projetos de interiores e paisagismo.
• Engenharia: Em todas as suas áreas (mecânica, civil, aeronáutica, etc.)
• Geografia: Cartografia, GIS, georreferenciamento, previsão de
colheitas.
• Meteorologia: Previsão do tempo, reconhecimento de poluição.
• Astronomia: Tratamento de imagens, modelagem de superfícies.
• Marketing: Efeitos especiais, tratamento de imagens, projetos de
criação.
• Segurança Pública: Definição de estratégias, treinamento,
reconhecimento.
• Indústria: Treinamento, controle de qualidade, projetos
• Turismo: Visitas virtuais, mapas, divulgação e reservas.
• Moda: Padronagem, estamparias, criação, modelagens, gradeamentos.
• Lazer: Jogos, efeitos em filmes, desenhos animados, propaganda.
• Processamento de Dados: Interface, projeto de sistemas, mineração de
dados.
• Psicologia: Terapias de fobia e dor, reabilitação.
• Educação: Aprendizado, desenvolvimento motor, reabilitação.
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
14
Interdisciplinar – Teoria e Prática
Ciência da Computação
Algoritmos e Estrutura de Dados
Matemática
Matemática de curvas e superfícies, geometria
Física
Ótica, mecânica, Física da luz e cores
Engenharia
“Hardware” (processadores gráficos, dispositivos de I/O) e “Software” (bibliotecas gráficas, sistemas de
janelamento (“window systems”) e engenharia de “software”)
Projeto de estruturas (Eng. Civil e Eng. Mecãnica/Mecatrônica)
Psicologia
Cores: harmonia e percepção
Artes e “Design”
…
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
15
Uma breve história…
• No início, dificuldades inclusive para visualização de textos …
Manchester Mark I
Display
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
16
Uma breve história…
• 1926 - J.L. Baird inventa a televisão (30 linhas – verticais)
• 1885 - CRT (Cathode Ray Tube)
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
17
Uma breve história…
• 1950 - computador com CRT (MIT)
• 1960 - doutorado de Ivan Sutherland -
Sketchpad
– Estrutura de dados e técnicas interativas
– Lightpen
– Estruturas em memória para armazenar
objetos
– rubber-banding
– zoom in, zoom out
– PDP-1 (DEC)
• ~1960 - GM desenvolveu o CAD (“Computer Aided Design”) e CAM
(“Computer Aided Manufacturing”)
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
18
Uma breve história…
• 1962 – Steve Russel Space War
– Primeiro jogo para computador
– “multiplayer”
– Teclas: a,s,d,f, k, l, ... controla as naves
• 1963 – IBM cria o primeiro “mainframe”(modelo 360) de
propósito geral.
• 1963 - SRI desenvolve o “mouse”
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
19
Uma breve história…
• 1966 – Ralph Baer cria o primeiro produto de consumo baseado em
C.G.
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
20
Uma breve história…
• 1967 – GE implementa o primeiro
simulador (“real time”)
totalmente colorido para a NASA
• ~1968 Tektronix – tubos
• ~1970 Boeing – CAD/CAM
• ~1970 “workstations” e PCs surgiram separadamente
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
21
Uma breve história…
• 1972 – Atari (PONG)
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
22
Uma breve história…
Westworld (1973)
Primeiro filme com características de
Computação Gráfica
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
23
Uma breve história…
• 1974 – Intel desenvolve o processador 8080
• 1975 – Mandelbrot cria os “fractais”
• Bill Gates inicia a Microsoft
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
24
Uma breve história…
• 1976 – Steve Jobs e Steve Wozniac funda a
Apple
• 1977 – Categoria de efeitos especiais é
introduzido no Oscar
• 1977 – “Star Wars” vence o
Oscar
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
25
Uma breve história…
1978 1979
• 1980 – “Tron” da Disney foi o
primeiro filme com 20 minutos de
animação feito por computador
1980
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
26
Uma breve história…
• 1980 – Seagate cria tecnologia de HDs para
PCs
• 1981 – IBM cria o IBM PC (8088 de 16 bits)
• 1982 – “Startrek II ” os efeitos
visuais foram feitos totamente no
computador
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
27
Uma breve história…
1983
1984 - PIXAR
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
28
Uma breve história…
1985 – animação realística por
computador (modelos altamente
detalhados)
• 1990 – Windows 3.0, “decola”
• 1993 – “Myst”
• 1994 – Playstation e N64
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
29
Uma breve história…
1995 – “Toy Story”, primeiro desenho animado
3D, totalmente no computador 1997
1996 – “Independence Day”
1997
“Geri ’s Game”
(Pixar)
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
30
Uma breve história…
• 1998 – “Armageddon”, “Mouse Hunt” e
“Bugs Life”
• 1998 – “Matrix”, “Star Wars: The Phantom Menace”
e “Tarzan” (Disney)
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
31
Uma breve história…
• 2000 – PlayStation II (Sony), “Shrek”
(Disney), “Walking with Dinosaurs”
• ... PS3, WII, TV Digital, HDMI,
BlueRay, IPhone, IPad, Cinema 3D,
TV 3D ...
• 2002 – Xbox (Microsoft)
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
32
História – ferramentas (bibliotecas/SO)
1978-core
1985-GKS
1988-PHIGS
1990-PEX
1991-GL
1993-OpenGL
1996-Direct 3D
…
1984-Macintosh
1987-XWindow v.11
1988-Motif
1990-Windows 3.0
1993-Visual Basic v.3
1995-Delphi
1996-Java
…
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
33
História - Sistemas notáveis
• Tektronix comandos em BASIC (meados-1970)
• HP (Hewlett Packard)
• Microsoft BASIC (para PCs) comandos gráficos (aprox. 1980)
• QuickDraw (Apple Macintosh)
• X (MIT)
• OpenGL (Silicon Graphics)
• SRGP (Simple Raster Graphics Package)
• SPHIGS (Simple PHIGS)
• MS Windows
• Java AWT
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
34
Evolução da Computação Gráfica
Inicialmente, o desenvolvimento da Computação gráfica foi
lenta:
– Alto custo dos equipamentos (principalmente memória)
– Necessidades de recursos computacionais significantes
– Dificuldade para desenvolvimento de “software”
– Falta de padronização e portabilidade
– Falta de ferramentas para construção de “ software”
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
35
Evolução da Computação Gráfica
Atualmente:
– O custo dos equipamentos diminuiu bastante
– Maioria dos computadores tem recursos necessários para os
gráficos
– Surgimento de padronizações, implementações e ferramentas
– Permanece a carência no desenvolvimento de “software” em
relação ao desenvolvimento tecnológico dos equipamentos
(“hardware”)
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
36
Associações/Comitês profissionais
ACM SIGGRAPH
- “Association for Computing Machinery Special Interest Group in
Graphics”
IEEE
- “The Institute of Electrical and Electronics Engineers, Technical
Committee on Computer Graphics”
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
37
Padronizações
ANSI = “American National Standard Institute”
ISO = “International Standards Organization”
ANSI é um membro da ISO
Padrões gráficos oficiais
• 1977 and 1979 - 3D SIGGRAPH CORE (ACM SIGGRAPH)
• 1985 - GKS (Graphical Kernel Systems) ANSI X3.124-1985
• 1988 - GKS-3D (ISO 8805 and ANSI)
• 1988 - PHIGS (Programmer's Hierarchical Interactive Graphics
System) ANSI
• 199x - OpenGL
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
38
Tecnologia em Circuitos Integrados (graphics cards)
Novas plataformas de “games”, utilizam processadores de alta
performance (128-bit e grande capacidade gráfica)
SGI/Nintendo 64
Sega Dreamcast
Sony Playstation 2
3Dfx Voodoo3
nVidia GeForce (23 milhões de transistores)
PixelFusion FUZION
…
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
39
Requisitos para bons sistemas Gráficos
Habilidade para controlar os pontos (pixels) do “display”
Habilidade para controlar as formas primitivas na tela
Uso de cores, luzes e sombras
Construção de bibliotecas (“library”) ou pacotes (“packages”)
para extender linguagens
Conhecimento de “hardware”
Transformação e representação matemática
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
40
Requisitos para bons sistemas Gráficos
Habilidade para armazenar blocos de informações
Computadores de alta performance
Algoritmos gráficos
Entendimento e manipulação de estrutura de dados
Bons princípios de engenharia de “software”
Fatores humanos
Alguns prinçípios artísticos
E muito esforço…
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
41
História - Exemplos
DAC: primeiro sistema CAD (IBM 1959)
SpaceWars: primeiro game baseado em Computação
Gráfica (MIT 1961)
Imagem texturizada (Catmull 1974)
SketchPad: primeiro sistema gráfico interativo (1961)
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
42
História - Exemplos
(Blinn 1978)
(Cook 1984) (Whitted 1980)
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
43
História - Exemplos
Star Wars (1977): utilizando GRASS
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
44
História - Exemplos
Tron (1980)
Computação Gráfica utilizada pela primeira vez
para definir sequências de ações.
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
45
História - Exemplos
Starfighter (1982)
Star trek II: efeito genesis (1983)
Computação Gráfica
© Julio Arakaki
Ciência da Computação
1. Introdução
46
Referência Bibliográfica
• “Computer Graphics – C version”, Donald Hearn e M. Pauline Baker.
2a edição. Prentice Hall. 1997.
• “3D Computer Graphics”, Alan Watt. 3a edição. Addison Wesley.
2000.
• Diversos (livros, artigos de revistas, internet)
Top Related