Computação Gráfica I Conteúdo: Professor: - Introdução Anselmo Montenegro www.ic.uff.br/~anselmo Computação Gráfica I Conteúdo: - Introdução
Computação Gráfica : noção clássica DADOS IMAGENS 1200 1200 1.000000 1.000000 37.600000 2.000000 1.000000 39.600000 3.000000 1.000000 40.700000 4.000000 1.000000 42.600000 5.000000 1.000000 42.600000 6.000000 1.000000 43.100000 ... Computação Gráfica
Aplicações: cinema
Aplicações: cinema Jurassic Park ®
Aplicações: cinema
Aplicações: jogos eletrônicos Gears of war xbox360 ®
Aplicações: engenharia Petrobras – Tecgraf – PUC-Rio
Aplicações: indústria
Aplicações: medicina Zs Xs Ys Ana Elisa F. Schmidt – Tese de Doutorado – PUC-Rio
Aplicações: medicina
Aplicações: visualização científica http://sdcd.gsfc.nasa.gov/SVS/stories/solve/toms.html
(Visão Computacional) Sub-áreas da Computação Gráfica Modelagem Modelos e Dados Síntese de Imagens (Visualização) Análise de Imagens (Visão Computacional) Imagem digital Processamento de Imagens
Síntese de imagens
Processamento de imagens Tons de cinza Borramento Detecção de arestas
Visão Computacional LAK 5519
Visão Computacional Juiz Virtual – Tecgraf – PUC-Rio
Novas tendências: modelagem baseada em imagens
Fundamentos da Computação Gráfica Modelos físicos Modelos matemáticos Esquemas de representação. Estruturas de dados e algoritmos. Universo Físico Universo Matemático Universo de Representação Universo de Implementação
Fundamentos da Computação Gráfica z f(u0,v0) v u I = f : U R2 R Físico Matemático Representação Implementação M(zij) Zij=f(xi,yj) (xi,yj) float terreno[N][M]; .
Requisitos da Computação Gráfica EFICIÊNCIA REALISMO
Programadores de aplicações. Desenvolvedores de ferramentas. Profissionais da Computação Gráfica Usuários. Customizadores. Programadores de aplicações. Desenvolvedores de ferramentas.
Computação Gráfica: um histórico Anos 60-70 Ivan Sutherland (Sketchpad, 1963). Tecnologia de display: terminais gráficos vetoriais capazes de armazenar primitivas (raster inviável, devido a custo de memória e capacidade de processamento). Wire-frame, aplicações de CAD. Problemas fundamentais: visibilidade, recorte, técnicas de modelagem geométrica (2D e 3D).
Computação Gráfica: um histórico Ivan Sutherland
Anos 80 Computação Gráfica: um histórico Viabilização da tecnologia raster (economia de mercado, microcomputadores). Adaptação das técnicas wire-frame para raster. Z-buffer: inviável quando introduzido (1975), mas a tecnologia do futuro. Visualização realista, animação, iluminação global (radiosidade). Interfaces gráficas.
Anos 90 Computação Gráfica: um histórico Consolidação do raster. Visualização volumétrica. Maior integração com imagens (modelagem e visualização baseada em imagens). Aquisição de movimentos. Realismo em movimento (efeitos especiais).
Computação Gráfica: um histórico Na atualidade Programação em placas gráficas (indústria de jogos). Modelos de iluminação mais realistas(não Lambertianas). Aquisição de dados fotométricos mais precisos (HDR). Aquisição de geometria em tempo real. Modelos baseados em pontos. Superfícies de subdivisão.
Ciclo de vida dos problemas Os problemas essenciais são recolocados a cada mudança de tecnologia: Modelagem. Visibilidade. Imageamento. Animação.
Ferramentos para a programação gráfica VisualBasic Java Delphi C / C++ DirectX GLUT CanvasDraw PHIGS IUP/lua RenderWare ToolBook ? HOOPS Xlib Motif ? ? GKS QuickDraw OpenGL C &OpenGL (c/ GLUT)
Programa do curso Parte I Introdução. Cores. Imagens. Introdução à OpenGL.
Programa do curso Parte II Sistemas Gráficos 2D. Objetos Gráficos 2D. Transformações geométricas no plano. Algoritmos para rasterização de linhas e polígonos. Recorte 2D. Transformações de tela.
Programa do curso Parte III Sistemas Gráficos 3D. Objetos gráficos 3D. Transformações geométricas 3D. Instanciação de objetos. Transformações de visualização e modelos de câmera virtual. Eliminação de superfícies não visíveis. Modelos de Iluminação. Texturas. Técnicas avançadas.
Computação Gráfica I Conteúdo: Professor: - Cores Anselmo Montenegro www.ic.uff.br/~anselmo Computação Gráfica I Conteúdo: - Cores
Cores: intuição Luz + Sistema Visual
Natureza dual da luz v l = v / f c = l f Cores: noção física de cor ONDA PARTÍCULA v l = v / f c = l f c = Velocidade da Luz @ 3.0x108 m/s
Cores: cor como onda eletro-magnética 102 104 106 108 1010 1012 1014 1016 1018 1020 rádioAM FM,TV Micro-Ondas Infra-Vermelho Ultra-Violeta RaiosX f (Hertz) l (m) 106 104 102 10 10-2 10-4 10-6 10-8 10-10 10-12 VISÍVEL vermelho (4.3 1014 Hz), laranja, amarelo,..., verde, azul, violeta (7.51014 Hz)
Cores: cor como onda eletro-magnética Newton vermelho alaranjado amarelo verde azul violeta luz branca prisma Cor l Violeta 380-440 nm Azul 440-490 nm Verde 490-565 nm Amarelo 565-590 nm Laranja 590-630 nm Vermelho 630-780 nm luz branca (acromática) tem todos os comprimentos de onda 1 nm = 10-9 m
Cores: distribuição espectral da luz 100 luz branca 50 luz colorida 400 500 600 700 l (nm)
Cores: processo de formação As cores que percebemos surgem da iteração entre fontes de luz e diversos tipos de materiais encontrados no mundo físico. Tipos de processos de formação: Aditivo. Subtrativo. Por pigmentação.
Cores: processo de formação aditivo Ea+b(l) = Ea (l)+Eb(l) Ea Ea+b a l a+b Eb b l l O olho não vê componentes!
Cores: processo de formação subtrativo filtros l Ei l t l Ef transparência Luz branca Filtro verde Luz verde Ef(l) = t(l) . Ei (l) corantes azul amarelo
Cores: processo de formação por pigmentação A sucessão de reflexão e refração determinam a natureza da luz refletida índices de refração distinto do material base tons mais claros (tints) tinta branca tinta colorida (saturada) Cinzas (greys) tons tons mais escuros (shade) PALHETA DO PINTOR tinta preta
Cores: modelo matemático Cor branca ideal Cor com comprimento de onda dominante Cor arbitrária Cor mocromática, pura ou espectral l (nm)
Cores: espaço de cores E Espaço de funções correspondentes às distribuições espectrais. Possui dimensão infinita. Para manipulá-lo computacionalmente é necessário representá-lo. l (nm) E
Cores: representação C() ... l (nm) E l (nm) E C(n) 0 1 n Amostragem pontual 0 1 n ... C(1) C(n)
Depende de dois fatores: Cores: reconstrução Depende de dois fatores: Número de amostras utilizadas. Método de interpolação. E C(0) C(1) C(n) l (nm) 0 1 ... n
Cores: sistemas receptores Amostram cores. Possuem um conjunto de sensores. Cada sensor é caracterizado por uma resposta espectral Si(). C() 0
Cores: sistemas emissores Reconstroem cores. Possuem um conjunto de emissores Pk, k=1...n. Cada emissor está associado a uma cor primária com distribuição espectral Pk(). O conjunto de cores que podem ser recontruídas por um sistema emissor é denominado gamute P1() P2() P3() Cr()
Cores: o problema de representação e reconstrução de cores Questões fundamentais: O que é uma “boa” reconstrução de cores? Quantas cores devem ser usadas como base da representação? Que cores (primárias) devem compor esta base?
Cores: uma solução par o problema de representação-reconstrução Boa = perceptualmente adequada (reconstrução metamérica) Número de cores = 3 Cores: vermelho, verde e azul Inspiração: sistema visual humano
Cores: representação no sistema visual humano bastonetes retina cones vermelho verde azul
fração de luz absorvida Cores: representação no sistema visual humano Olho humano: Cones (RGB) e Bastonetes (cegos para cor) .02 .04 .06 .08 .10 .12 .14 .16 .18 .20 400 440 480 520 560 600 640 680 l fração de luz absorvida por cada cone comprimento de onda (nm) B(l) G(l) R(l)
Cores: representação no espaço tricromático O sistema visual humano representa as cores do espaço espectral E em um espaço tricromático. Isto significa que três amostras(nas faixas correspondentes ao vermelho, verde e azul) é suficiente para os propósitos de reconstrução perceptual.
Cores: funções de reconstrução de cor no sistema CIE-RGB - 0.2 0.2 0.4 400 500 600 700 438 nm 546 nm l (nm) Valores dos tri-esimulos R(l ) G(l ) B(l ) C(l ) = r R(l) + g G(l) + b B(l)
Cores: como obter as funções de reconstrução de cor rR(l) gG(l) R = 700 nm G = 546 nm B = 435.8 nm bB(l) Cor Monocromática C(l) C(l ) = rR(l) + gG(l) + bB(l)
Cores: interpretando as componentes negativas gG(l) R = 700 nm G = 546 nm B = 435.8 nm bB(l) rR(l) Cor Monocromática C(l) C(l ) + rR(l) = gG(l) + bB(l) C(l ) = r’R(l) + gG(l) + bB(l) , onde r’R(l) = - rR(l)
Cores: geometria dos espaços de cor tricromáticos C’()=tC() l (nm) E C() E C() l (nm)
Cores: geometria dos espaços de cor tricromáticos croma c’ = tc c Variação de luminância tc = tR(C()) = tR(C()) = R(tC()) = R(C’())=c’ Cada reta passando pela origem(menos a própria origem) define uma informação de cromaticidade (croma)
Cores: Triângulo de Maxwell (0,1,0) :c1+c2+c3 (1,0,0) (0,0,1)
Cores: coordenadas de cromaticidade
Cores: sólidos de cor e diagramas de cromaticidade É um cone. É convexo. Cores espectrais (puras) estão na fronteira. Plano X+Y+Z=1 Diagrama de cromaticidade (projeção do sólido de cor sobre o Triângulo de Maxwell
Sólido de cor + uma base = Sistema de cor. Cores: sistemas de cor Sólido de cor + uma base = Sistema de cor. P2 c = c1 P1(l) + c2 P2(l) + c3 P3(l) c P1 P3
Cores: sistemas de cor padrão Sistemas propostos para especificação de cor padronizada. Independentes de dispositivos físicos. Sistemas propostos pela CIE ( Comission Internationale de l´Eclairage) Sistema CIE-RGB. Sistema CIE-XYZ.
Cores: sistemas CIE-RGB Primeiro sistema padrão proposto. Utiliza uma representação de cor no espaço tricromático Base de primárias do sistema: R() vermelho com comprimento de onda de 700 nm G() verde com comprimento de onda de 546 nm B() azul com comprimento de onda de 435.8 nm
Cores: funções de reconstrução de cor no sistema CIE-RGB - 0.2 0.2 0.4 400 500 600 700 438 nm 546 nm Valores dos tri-esimulos r(l ) g(l ) b(l ) C(l ) = R r(l) + G g(l) + B b(l) Cores espectrais 520 nm 500 nm 546,1 nm 1.0 700 nm l (nm) 1.0 1.0 Reta púrpura
Cores: limitações do sistema CIE-RGB Y Z X 1.0 700 nm 546,1 nm 520 nm 500 nm
Cores: sistema CIE-XYZ Sistema proposto capaz de reconstruir todas as cores visíveis. A base de primárias {X,Y,Z} é formada por cores não visíveis. Estão fora do sólido de cor. Deste modo todas as cores visíveis possuem coordenadas positivas.
Cores: sistema CIE-XYZ
Cores: sistema CIE-XYZ
Cores: sistema CIE-XYZ 520 480 490 500 510 540 560 Purpura 580 600 700 400 Azul Cian Verde Amarelo Vermelho x y 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Branco
Cores: funções de reconstrução de cor no sistema CIE-XYZ C(l ) = X(l) X + Y(l) Y + Z(l) Z 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 Z(l) Cores Básicas do CIE 1931 X(l) Y(l) Valor X(l) l (nm) 400 500 600 700
Cores: sistema CIE-XYZ 0.2 0.4 0.6 0.8 1.0 Branco C2 C1 cores saturadas a b y x 0.2 0.4 0.6 0.8 1.0 Branco C’ C a a + b C’ é complementar a C Û a C’ + b C = Branco saturação de C1 =
Cores: comparação entre os sistemas CIE-RGB e CIE-XYZ
Cores: conversão entre os sistemas CIE-RGB e CIE-XYZ É feita através de mudanças de coordenadas (determinada por uma mudança de base). A mudança entre as bases é determinada por uma transformação linear.
Cores: sistemas de cor da Computação Gráfica Sistemas dos Dispositivos. Sistemas Computacionais. Sistemas de Interface.
Cores: sistemas dos monitores Processo Aditivo pixel
Cores: sistemas dos monitores - mRGB processo aditivo verde Y 1.0 amarelo W C ciano branco K vermelho preto 1.0 R 1.0 azul Normalmente temos 1 byte para cada componente mapeando[0, 255] em [0,1] M magenta B B
Cores: sistemas as impressoras -CMY(K) processo subtrativo luz branca luz ciano (0,1,1) tinta ciano (0,1,1) papel branco (1,1,1) componente vermelha é absorvida
Cores: gamute no diagrama de cromaticidade dos dispositivos y 0.1 0.2 0.3 0.4 0.6 0.5 0.7 0.8 0.9 1.0 C2 gamute de um monitor C1 W gamute de uma impressora 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 x
Cores: sistemas de interface Permitem uma especificação intuitiva de cores. São baseados em uma decomposição crominância-luminância. Utilizam o seguinte esquema: Escolha da crominância. Escolha da luminância(brilho).
Cores: sistemas de interface Escolha da crominância: Escolha de um ponto no espaço de croma (bidimensional). Primeiro o usuário escolhe a matiz (a cor pura). Depois o usuário escolhe a saturação (nível de mistura da cor pura com o branco).
Cores: sistema HSV Sistema criado para a especificação de cores em monitores. Introduz um sistema de coordenadas segundo o esquema luminância-crominância no sistema mRGB. Descreve uma cor através de 3 parâmetros: Hue(matiz) Saturation(saturação) Value(valor), uma mediada de brilho igual a max{r,g,b}.
Cores: sistema HSV