320
 Computação Gráfica e Multimédia Transformações Geométricas 2D César Toscano Março/2009

CGM

Embed Size (px)

Citation preview

Page 1: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 1/352

 

Computação Gráfica e Multimédia

Transformações Geométricas2D

César Toscano 

Março/2009 

Page 2: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 2/352

 

Transformações geométricas

• Primitivas:

 – Translação; – Rotação; – Variação de escala (compressão/expansão).

• Objectivos:

 – Manipulação dos objectos. – Obtenção (simulação) de movimento.

• Estratégia:1. Aplicar a transformação geométrica aos pontos extremos

que definem o objecto gráfico;

2. Desenhar o objecto gráfico definido pelo novos pontosextremos.

Page 3: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 3/352

 

Transformações geométricas

• Translação de objectos:

 – translação de todos os pontosdo objecto OU translação dospontos extremos dossegmentos de recta econsequente desenho dosegmento

x’ = x + dx e y’ = y + dy

P’ = P + T

P

P’T

Vectores P, P’ e T A

Soma de vectores

Page 4: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 4/352

 

Transformações geométricas

Exemplo de translação de uma casa:

Page 5: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 5/352

 

Transformações geométricas• Variação de escala:

• A variação de escala é feita em relação à origem.• Factor de escala < 1 o objecto diminui de tamanho e aproxima-se da

origem (compressão das dimensões do objecto).• Factor de escala > 1 o objecto aumenta de tamanho e afasta-se da

origem (expansão das dimensões do objecto).

• sx = sy a variação de escala é uniforme.• sx <> sy as dimensões relativas do objectivo são distorcidas.

P

P’S

x’ = sx · x e y’ = sy · y

P’ = S · T

Page 6: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 6/352

 

Transformações geométricas

Exemplo de compressão de uma casa:

Page 7: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 7/352

Transformações geométricas• Rotação:

• A rotação é feita em relação à origem.

• Ângulos positivos: sentido contrário aos ponteiros do relógio.• Ângulos negativos:cos(-θ) = cos(θ) e sen(-θ) = -sen(θ)

x’ = x · cosθ - y · senθ

y’ = x · senθ + y · cosθ

P’ = R · P

PP’

θ

 

Page 8: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 8/352

Transformações geométricas

• Demonstração das equações anteriores:x = r · cosΦ

y = r · senΦ

x’ = r · cos(Φ+θ)

y’ = r · sen(Φ+θ)

x’ = r cosΦ cosθ – r senΦ senθ

y’ = r cosΦ senθ + r senΦ cosθ

x’ = x cosθ – y senθ

y’ = x senθ + y cosθ

x y

 

Page 9: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 9/352

Transformações geométricas

Exemplo de rotação de uma casa:

 

Page 10: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 10/352

Coordenadas homogéneas• Representação matricial de transformações 2D:

 – P’ = T + P

 – P’ = S · P – P’ = R · P

• A translação é tratada de forma diferente (como adição). Deseja-se que as trêstransformações sejam tratadas da mesma forma, para que a sua combinaçãoseja possível.

• A utilização de coordenadas homogéneas permite tratar todas as transformaçõesgeométricas como multiplicações de matrizes.

• Coordenadas homogéneas do ponto P: – (x,y,W) – (x,y,W) e (x’,y’,W’) representam o mesmo ponto se e só se um for múltiplo do outro:

• (2,3,6) e (4,6,12) representam o mesmo ponto. – Um ponto é representado por várias coordenadas homogéneas:

• (tx,ty,tw) para um t <>0 representam o mesmo ponto. – (0,0,0) não é permitido; uma das coordenadas deve ser <> 0. – (x,y,W) é idêntico a (x/W,y/W,1) x/W e y/W são as coordenadas cartesianas do

ponto homogéneo (W <> 0). – W=0 pontos no infinito

• As matrizes de transformação passam agora a ser 3 X 3.

 

Page 11: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 11/352

Coordenadas homogéneas

• Um ponto homogéneo é representado por uma linha

no espaço tridimensional:

 

Page 12: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 12/352

Transformações geométricas

• Translações:

• Aplicação de duas translações sucessivas:P’ = T(dx1,dy1)·PP’’ = T(dx2,dy2)·P’P’’ = T(dx2,dy2)·(T(dx1,dy1)·P) = (T(dx2,dy2)·T(dx1,dy1)) ·P

= T(dx1+dx2,dy1+dy2)·P

Ou seja, translações sucessivas são aditivas.

x’y’1

1 0 dx0 1 dy0 0 1

xy1

= · ou P’ = T(dx,dy) · P

 

Page 13: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 13/352

Transformações geométricas

• Translações (propriedades usadas nas expressões

anteriores): – A(BC) ≡ (AB)C propriedade associativa – (A+B)C ≡ AC+BC propriedade distributiva à direita – C(A+B) ≡ CA+CB propriedade distributiva à esquerda

 – AB ≠ BA, quando AB≡BA diz-se que A e B comutam (ouque são permutáveis) – (A+B)T ≡ AT + BT

 – (AB)T ≡ BTAT

 

Page 14: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 14/352

Transformações geométricas

• Variações de escala (em relação à origem):

• Aplicação de duas variações de escala sucessivas:P’ = S(sx1,sy1) · PP’’ = S(sx2,sy2) · P’P’’ = S(sx2,sy2)·(S(sx1,sy1)·P) = … =

S(sx1·sx2,sy1·sy2)·P

Ou seja, variações de escala sucessivas são multiplicativas.

x’y’1

sx 0 00 sy 00 0 1

xy1

= · ou P’ = S(sx,sy) · P

 

Page 15: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 15/352

Transformações geométricas

• Rotações (em relação à origem):

• Facilmente se prova que rotações sucessivas sãoaditivas:

P’’ = R(θ1+θ2)·P

x’y’1

cosθ -senθ 0senθ cosθ 0

0 0 1

xy1

= · ou P’ = R(θ) · P

  

Page 16: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 16/352

Transformações geométricas

• Rotações (em relação à origem):

 – Considere-se a transformação R(θ):

||A|| = √(cos2θ +sen2θ) e ||B|| = √(sen2θ +cos2θ)A e B são vectores unitáriosA e B são perpendiculares (Ω = 90º):

A · B = ||A|| ||B|| cosΩ (produto escalar)

A · B = cosθ senθ - senθ cosθ = 0cosΩ = (A · B) / (||A|| ||B||) = 0 / 1 Ω = 90º

cosθ -senθ 0senθ cosθ 0

0 0 1R(θ) =

Vector A

Vector B

 

Page 17: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 17/352

Transformações geométricas

• Da mesma forma:

 – Os vectores C e D (1ª e 2ª colunas) também são unitáriose perpendiculares.

 – Uma matriz com estas características diz-se ortogonalespecial

• AAT = I (A é ortogonal)• AT = A-1

• Considere-se agora uma sequência arbitrária derotações e translações. A matriz compostaapresenta o seguinte aspecto:

r11 r12 txr21 r22 ty0 0 1

OrtogonalA transformação preservaângulos e comprimentos

dos objectos gráficos(rigid body transformation)

 

Page 18: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 18/352

Transformações geométricas

• Considere-se uma sequência arbitrária de rotações,

variações de escala e translações. A transformaçãogeométrica efectuada não preserva ângulos ecomprimentos, mas mantém o paralelismo existenteentre as linhas que compõem os objectos gráficos:

cubo Rotação

45º

Variação de escala em x

(sem variar o y)

 

Page 19: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 19/352

Transformações geométricas

• Distorção linear (segundo o eixo das abcissas):

x’ = x + ay e y’ = y

P’ = SHx · Pa constante de proporcionalidade

• A distorção linear segundo o eixo das ordenadas éfeita de forma análoga:

x’ = x e y’ = bx + yP’ = SHy · P

x’y’1

1 a 00 1 00 0 1

xy1

= ·

x’y’1

1 0 0b 1 00 0 1

xy1

= ·

 

Page 20: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 20/352

Transformações geométricas

• Transformações inversas e correspondentes

matrizes inversas:

 – T(dx,dy) T(-dx,-dy) – R(θ) R(- θ)

 – S(sx,sy) S(1/sx,1/sy)

 – Se BA=I, B é a inversa de A

 

Page 21: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 21/352

Composição de transformações

• 1º caso - Rotação de um objecto em torno do

ponto P1(x1,y1)

 

Page 22: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 22/352

Composição de transformações

• 1º caso - Rotação de um objecto em torno do

ponto P1(x1,y1):1. Efectuar a translação do objecto por forma que P1 fique

situado na origem;2. Rodar o objecto (em torno da origem);

3. Efectuar a translação inversa à primeira.

T(x1,y1) · R(θ) · T(-x1,-y1) =

1 0 x1

0 1 y10 0 1 ·

cosθ -senθ 0

senθ cosθ 00 0 1 ·

1 0 -x1

0 1 -y10 0 1 =

cosθ -senθ x1(1-cosθ)+y1senθ

senθ cosθ y1(1-cosθ)-x1senθ0 0 1

 

Page 23: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 23/352

Composição de transformações

• 2º caso – Compressão/expansão de um objecto

em torno do ponto P1(x1,y1):1. Efectuar a translação do objecto por forma que P1 fique

situado na origem;2. Efectuar a variação de escala do objecto (em torno da

origem);3. Efectuar a translação inversa à primeira.

T(x1,y1) · S(sx,sy) · T(-x1,-y1) =

1 0 x10 1 y10 0 1

· sx 0 00 sy 00 0 1

· 1 0 -x10 1 -y10 0 1

= sx 0 x1(1-sx)0 sy y1(1-sy)0 0 1

 

Page 24: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 24/352

Composição de transformações

• 3º caso – Compressão/expansão e rotação de um

objecto em torno do ponto P1(x1,y1) ereposicionamento em P2(x2,y2):

T(x2,y2) · R(θ) · S(sx,sy) · T(-x1,-y1)

 

Page 25: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 25/352

Composição de transformações

• Atenção á ordem de multiplicação das matrizes:

 – M1 · M2 <> M2 · M1

 – M1 · M2 = M2 · M1 sse M1 e M2 representam:• Translações;

• Mudanças de escala;• Rotações;

• Mudança de escala (sx=sy) e rotação, respectivamente.

 

Page 26: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 26/352

Transformação window-to-viewport• Transformação janela - porta-de-visão

• Considere-se: – Sistema coordenado universal: sistema de coordenadas cartesianas queserve de base à descrição do modelo a ser visualizado. A unidade de medidapoderá ser o metro, a milha, um ano-luz, ...

 – Sistema coordenado do dispositivo físico: sistema de coordenadas própriasdo dispositivo de visualização.

• Mapeamento das coordenadas universais em coordenadas do dispositivode visualização:

window View port

Coordenadas dodispositivo físico

Coordenadas universais

 

Page 27: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 27/352

Transformação window-to-viewport

 

Page 28: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 28/352

Transformação window-to-viewport

• Cálculo da respectiva matriz de transformação:

Mwv = T(umin,vmin) ·S((umax-umin)/(xmax-xmin),(vmax-vmin)/(ymax-ymin)) ·T(-xmin, -ymin)

Razão de aspecto (aspect ratio): (xmax-xmin) / (ymax-ymin)

Se as razões de aspecto da janela e porta de visualização sãoidênticas as variações de escala nos eixos ox e oy são

iguais os objectos não sofrem distorção.

 

Page 29: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 29/352

Transformações Geométricas 3D

• Translação: T(dx,dy,dz) =

• Variação de escala: S(sx,sy,sz) =(em relação à origem)

• Rotação:(em relação à origem)

Rz(θ) = Ry(θ) =

Rx(θ) =

1 0 0 dx0 1 0 dy0 0 1 dz0 0 0 1

sx 0 0 00 sy 0 00 0 sz 00 0 0 1

cosθ -senθ 0 0senθ cosθ 0 0

0 0 1 00 0 0 1

cosθ 0 senθ 00 1 0 0

-senθ 0 cosθ 00 0 0 1

1 0 0 00 cosθ -senθ 00 senθ cosθ 00 0 0 1

 

Page 30: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 30/352

Transformações Geométricas 3D

• Da mesma forma que no caso 2D, a sub-matriz 3x3

representa 3 vectores unitários e ortogonais.• Todas as matrizes do quadro anterior tem inversa.• Composição de transformações 3D:

M = r11 r12 r13 txr21 r22 r23 tyr31 r32 r33 tz

0 0 0 1

translações

Rotações e variações de escala

 

Page 31: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 31/352

Exercício

• Considere um triângulo, no plano 2D, definido pelos

seguintes pontos: (0,0), (10,0) e (5,10). Identifiqueos cálculos necessários para efectuar as seguintestransformações (baseadas em coordenadashomogéneas) sobre o triângulo.

 – Translação segundo os eixos das abcissas e dasordenadas das quantidades 5 e 10, respectivamente. – Variação de escala (em relação à origem) segundo os

eixos das abcissas e das ordenadas do factor 2. – Inversão segundo o eixo das abcissas (espelho segundo

o eixo das abcissas). – Variação de escala em relação ao ponto (5,5) e segundo

os eixos das abcissas e das ordenadas do factor 2.

 

Page 32: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 32/352

Computação Gráfica

Tecnologias

João Neta 

(reeditado em Março/2008 e Fevereiro/2009 por César Toscano)

 

Page 33: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 33/352

Classificação da imagem

• A imagem pode ser classificada quanto ao formato

interno de representação• Analógica

 – Continua ao longo do tempo

• Digital – Discretizada em pontos de amostragem… – … o que pode parecer uma desvantagem mas… – … de acordo com o teorema de amostragem, se a frequência de amostragem

fôr pelo menos o dobro da largura de banda encontrada, conseguimosreproduzir fielmente a imagem original

33Computação Gráfica e Multimédia

 

Page 34: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 34/352

Classificação da imagem

34Computação Gráfica e Multimédia

 

Page 35: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 35/352

Classificação da imagem

• Quanto à representação do

conteúdo – Vectorizada• É representada a partir de

primitivas de desenho – Figuras geométricas regulares,

efeitos de preenchimento,

fontes, etc.

 – “ Raster” ou mapa de bits(bitmap ) matriz oselementos que constituem amatriz são varridos

35Computação Gráfica e Multimédia

 

Page 36: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 36/352

Ponto de imagem

• Qualquer dispositivo implementa esta definição

 – Pixel – Pix El (picture element) – Ponto de fósforo – Ponto de impressão – Dot pitch, dot size, spot size 

• Resolução

(n x m pontos)Nr de linhas visualmente distintas (é <= que o endereçamento)

• Endereçamento horizontal e verticalNr. de pontos por polegada que podem ser criados

• Densidade (espaçamento dos pontos)(ppp – pontos por polegada, 1” = 2.5cm)

36Computação Gráfica e Multimédia

 

Page 37: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 37/352

Qualidade da imagem

• Relação entre o tamanho de um ponto e a distância entre pontos• Compromisso: formas suaves versus detalhe fino• Resolução: nr. de linhas visualmente distintas (<= endereçamento)

37Computação Gráfica e Multimédia

 

Page 38: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 38/352

Qualidade da imagem

38Computação Gráfica e Multimédia

 

Page 39: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 39/352

Resolução

• Normas

• CGA 320x240• EGA 320x240 +cores

• VGA 640x480• SVGA 800x600, 1024x768• XGA 1024x768, 1400x1050, 1600x1200

• Outros específicos• Factor de aspecto

• 4:3• 16:9• Diagonal

39Computação Gráfica e Multimédia

 

Page 40: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 40/352

Hardware gráfico• Tecnologias de impressão (hard copy)

 – Impressora matricial – Traçadores de caneta – Traçadores electroestáticos – Impressora laser

 – Impressora de jacto de tinta

 – Gravadores de filme• Tecnologias de visualização (display) – Tubo de raios catódicos (CRT) monocromático e policromático – DVST direct view storage tube – Ecrans de plasma

 – Ecrans de cristais líquidos (LCD)

• Sistemas de visualização raster – Em tecnologias de impressão e de visualização

40Computação Gráfica e Multimédia

 

Page 41: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 41/352

Monitores - CRT

• Cathode ray tube (t ubo de raios catódicos, cinescópio)

• Quando o feixe de electrões atinge a superfície, a camada de fósforoemite luz. A intensidade de luz diminui exponencialmente ao longo dotempo, o que faz com que a imagem tenha de ser refrescada(redesenhada) periodicamente, por forma a manter a imagem constante.

41Computação Gráfica e Multimédia

 

Page 42: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 42/352

Monitores - CRT

42Computação Gráfica e Multimédia

 

Page 43: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 43/352

Monitores - CRT• Tecnologia centenária

• Princípio de funcionamento da válvula ancestral• Canhão de electrões• Tela de projecção em material fosforescente• Boa luminescência (a melhor)• Distorção natural introduzida pelo formato do

cinescópio• Bom ângulo de visão• Elevado consumo energético• Enorme aquecimento

• Bom preço

43Computação Gráfica e Multimédia

 

Page 44: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 44/352

Monitores - CRT• Frequência de refrescamento

(varrimento) – 50/60 imagens / segundo, pelo menos – Efeito de cintilação – Independente da complexidade da imagem – Freq. de varrimento horizontal: nº de linhas

que são varridas em cada segundo

• A intensidade de luz emitida em cadaponto pode ser controlada (+ ou –electrões no feixe)

• Spot size: 0,005 polegadas num CRTmonocromático

44Computação Gráfica e Multimédia

 

Page 45: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 45/352

Monitores - CRT• Televisão a cores

 – A superfície do ecran é formada por grupos muito pequenos depontos vermelhos, verdes e azuis. A luz que emana de cada grupo épercebida como a mistura das três cores primárias (Red, Green,Blue). Como a excitação de cada ponto é controlada, é alcançadauma grande quantidade de cores.

45Computação Gráfica e Multimédia

 

Page 46: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 46/352

Monitores - CRT• Televisão a cores

46Computação Gráfica e Multimédia

 

Page 47: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 47/352

Monitores - CRT• Televisão a cores

47Computação Gráfica e Multimédia

 

Page 48: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 48/352

Monitores - CRT• Sistema de televisão

 – Sistema de varrimento• Horizontal (625linhas)• Vertical (50Hz)• Entrelaçado

 – Video composto (RCA)• Intensidade

• Sincr. horizontal• Sincr. Vertical• Fase (côr)• Som

 – Vídeo simples• Tomadas RGB• Som• Sincronismos

48Computação Gráfica e Multimédia

 

Page 49: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 49/352

Monitores - DTV

• Televisão digital

• Informação digital emsuporte digital

• Versão de alta e baixadefinição

 – HDTV – SDTV

• Modos – Entrelaçado

 – Progressivo

49Computação Gráfica e Multimédia

 

Page 50: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 50/352

Monitores - LCD

• LCD – Liquid Crystal Display

50Computação Gráfica e Multimédia

 

Page 51: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 51/352

Monitores - LCD• Substância que é opaca até ser impressionada por um

campo eléctrico• Painel retroiluminado com uma lâmpada fluorescente (luz

branca uniforme)• Cada pixel corresponde a uma “bolacha” de três camadas

para composição de cores• Ângulo de visão em franco progresso (luz polarizada)

• … mas fraco!• Imagem naturalmente plana• Fiabilidade de cada pixel• Fraca resistência mecânica do ecrâ• Resoluções fixas

• Custo ainda elevado (baixou bastante nos últimos anos)

51Computação Gráfica e Multimédia

 

Page 52: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 52/352

Monitores - PLASMA

52Computação Gráfica e Multimédia

 

Page 53: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 53/352

Monitores - PLASMA• 1 pixel é composto por 1 lâmpada fluorescente miniaturizada

• 1 lâmpada por cada côr (processo semelhante ao CRT)• Angulo de visão melhorado• Imagem naturalmente plana• Melhor resistência mecânica (para exteriores)• Fiabilidade elevada para cada pixel

• Dot pitch ainda muito elevado• … mas imperceptível em televisões de grandes

dimensões• Custo muito elevado

53Computação Gráfica e Multimédia

 

Page 54: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 54/352

Monitores

• Grandes dimensões

54Computação Gráfica e Multimédia

 

Page 55: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 55/352

Monitores

55Computação Gráfica e Multimédia

• Comparação de tecnologias de visualização

 

Page 56: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 56/352

Impressoras

• Tecnologia

 – Impacto (através de cabeça de impressão e fita com tinta)• Matriciais• Roda-margarida (daisy-wheel)

 – Não impacto• Jacto de tinta• Laser• Cera• Sublimação• Térmicas• Papel autocromático• Processos litográficos

 – Traçadores de caneta (pen plotter):• Plano versus tambor• Comandos: drawline, move, drawcircle, drawtext, select pen, ...

56Computação Gráfica e Multimédia

 

Page 57: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 57/352

Impressoras – Jacto de tinta

• Térmicas de bolha

(bubble jet ) – HP + Canon

• Piezoeléctricas – EPSON

• Motor passo-a-passopara efectuar ovarrimento da folha

57Computação Gráfica e Multimédia

 

Page 58: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 58/352

Impressoras – Jacto de tinta• Uma cabeça de impressão varre uma linha no papel e

imprime deixando cair as gotas de tinta nos pontos devidos

(as cores cyan, magenta e yellow são simultaneamentedepositadas em cada ponto)• Os jactos de tinta estão montados numa cabeça• Um conjunto de dois motores passo-a-passo garantem os

dois varrimentos da imagem

• Baixo custo da impressora• Excelente resolução (~1720x720 ppp)• Elevado custo de impressão (por folha impressa)• Baixo/médio custo dos consumíveis• Qualidade de impressão dependente da qualidade do papel

 – … por causa da velocidade de absorção e secagem datinta no papel

58Computação Gráfica e Multimédia

 

Page 59: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 59/352

Impressoras - Laser

59Computação Gráfica e Multimédia

 

Page 60: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 60/352

Impressoras - Laser• Um feixe laser varre uma linha da imagem• Os motores mantém o papel a rolar de forma a garantir o deslizamento

vertical• O feixe deixa o rasto electrizado• O toner é agarrado nas zonas electrizadas (para cada ponto da linha, é

aplicada uma carga positiva; tinta preta é depositada no ponto)• O fusor derrete o toner e cola-o ao papel• Na impressão a cores, o feixe varre a linha para cada côr• Menor custo de impressão• Melhor qualidade e precisão• Melhor resistência à humidade• Maior rapidez de impressão• Mais independência do papel para obter resultados

• Maior consumo energético

60Computação Gráfica e Multimédia

 

Page 61: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 61/352

Impressoras - Sublimação

• A tinta vem em rolos de papel impregnado

• Uma cabeça passa sobre os rolos, aquecendo-os• A tinta vaporiza e condensa no papel

• Melhor resistência da imagem ao tempo

• Melhores resultados em fotografia de grandedimensão

• Mais cara

61Computação Gráfica e Multimédia

 

Page 62: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 62/352

Impressoras – Processo Litográfico• Criação de um filme negativo para cada côr impressa• Por cada filme é criada uma chapa impressionada por um

processo foto-químico• As chapas são colocadas em impressoras rotativas de alta

velocidade• As folhas do papel são passadas pela chapa enrolada em

rolos adequados previamente molhados na tinta

• A tinta é passada a quente e arrefecida rapidamente paranão borrar• O papel é cortado e a publicação é finalizada.

• Só justificável para grandes tiragens…• Exige controlo frequente da qualidade de impressão

• Excelente resultado de impressão mas inferior ao processodito fotográfico

62Computação Gráfica e Multimédia

 

Page 63: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 63/352

Comparação de tecnologias de Impressão

63Computação Gráfica e Multimédia

 

Page 64: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 64/352

Côr• Uma côr qualquer pode ser

representada como umacombinação linear de umconjunto de côresfundamentais – RGB – Red, Green, Blue

(monitores)

 – CYM – Cyan, Yellow,Magenta (impressoras)

• + Black, para melhoreconomia

 – Outros

• Quanto mais cores

destacadas, melhorafinação final

64Computação Gráfica e Multimédia

 

Page 65: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 65/352

Côr

• A côr aumenta as necessidades de memória

• N bits 2N

cores representadas• 3 cores fundamentais N / 3 bits por fundamental

65Computação Gráfica e Multimédia

 

Page 66: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 66/352

Captura digital de imagem

• Células CCD

 – Células semicondutorasfotosensíveis – Em número adequado à

resolução pretendida

Tamanho desejado MegapixelsResolução

recomendada

Tipo passe 0.3 640x480 pixels

4x5 “ 0.4 768x512 pixels

5x7 “ 0.8 1152x768 pixels

8x10 “ 1.6 1536x1024 pixels

66Computação Gráfica e Multimédia

 

Page 67: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 67/352

Captura digital de imagem

• As células CCD são “cegas” à côr

67Computação Gráfica e Multimédia

 

Si áfi

Page 68: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 68/352

Sistemas gráficos

• A imagem animada impõe condições à velocidade

de transmissão nos sub-sistemas gráficos• A taxa de refrescamento dos monitores (Hz) impõe um número dequadros a construir por segundo

» Modo progressivo» Modo entrelaçado

• A resolução impõe o tamanho digital de cada quadro

» Veja-se o problema da transmissão de HDTV

68Computação Gráfica e Multimédia

 

Si áfi

Page 69: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 69/352

Sistemas gráficos

• A geração de imagem

num computadorobedece a umaarquitectura clássica:

• O output é tratado comomais um periférico

69Computação Gráfica e Multimédia

 

Si áfi

Page 70: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 70/352

Sistemas gráficos

• Problema:

 – A velocidade de processamento dos barramentos podenão ser suficiente para manter com níveis de qualidadeaceitáveis uma imagem animada à máxima resolução

 – SOLUÇÃO:• Integrar a memória vídeo com a memória RAM do sistema

 – DIFICULDADES• Esquemas de DMA, Sincronismo entre a escrita e a cadência de

refrescamento dos quadros do monitor (flickering ).

70Computação Gráfica e Multimédia

 

Si t i l d i li ã t

Page 71: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 71/352

Sistema simples de visualização raster

71Computação Gráfica e Multimédia

 

Si t i l d i li ã t

Page 72: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 72/352

Sistema simples de visualização raster

• Programa de aplicação e rotinas de desenho estão

na memória do computador e são executadas peloCPU.• As rotinas de desenho implementam os algoritmos

de conversão por varrimento raster de primitivas

gráficas: – A operação Desenha_Linha(x0,y0,x1,y1) implementa umdeterminado algoritmo de conversão por varrimento deum segmento de recta

 – O resultado destes algoritmos traduz-se em alterações no

mapa de pixeis (pixmap) existente no frame buffer

72Computação Gráfica e Multimédia

 

Si t i l d i li ã t

Page 73: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 73/352

Sistema simples de visualização raster• Controlador de vídeo: percorre o frame buffer 50/60 vezes por segundo

(pelo menos) e o valor relativo a cada um dos pixeis é usado para actuar

na intensidade do feixe de electões do CRT. No caso policromático, ovalor é usado para actuar na intensidade de cada um dos três feixes

73Computação Gráfica e Multimédia

 

Si t i l d i li ã t

Page 74: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 74/352

Sistema simples de visualização raster

• Refrescamento não-entrelaçado (non interlaced)

 – Fornece a melhor qualidade de imagem – Exemplo: a imagem definida no pixmap é refrescada (no CRT) 50/60vezes por segundo

• Refrescamento entrelaçado (interlaced) – Muito usado nos televisores domésticos – Exemplo: a imagem apresentada pelo CRT é refrescada 24/30 vezes

por segundo, mas o refrescamento é feito em duas fases:• 1ª fase: são percorridas (varridas) as linhas ímpares• 2ª fase: são varridas as restantes linhas (linhas pares)

 – Aparentemente, a imagem é refrescada 50/60 vezes por segundo,desde que linhas contínuas contenham informação (visual) similar

74Computação Gráfica e Multimédia

 

Si t i l d i li ã t

Page 75: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 75/352

Sistema simples de visualização raster

• Sinais de vídeo do controlador de vídeo (caso

policromático) – RGB – Cabos separados transportam a informação relativa a

cada uma das côres primárias – Estes sinais vão actuar na intensidade de cada um dos

três feixes – A sinalização relativa ao varrimento horizontal e vertical

(sinais de sincronismo) é transportada num 4º cabo ou nocabo de cor G (vídeo composto)

75Computação Gráfica e Multimédia

 

Si t i l d i li ã t

Page 76: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 76/352

Sistema simples de visualização raster• Organização do frame buffer:

 – Caso monocromático: 1 bit por pixel

 – Caso policromático: N bits por pixel – Este valor controla não somente a intensidade de luz mas também a sua cor

• Quantos bits são necessários para se ter a percepção de se estar a veruma imagem com tons contínuos de cinzento? – No mínimo 5, normalmente 8

• No caso policromático são necessários, nas imagens mais difíceis, 8 bits

por cor primária – 224 cores diferentes 16 milhões de cores

• No entanto, existem muitas aplicações que não necessitam de tal grau depureza

• Não esquecer que o manuseamento e processamento de tais imagensexige bastante do CPU, além de necessitar de larguras de banda

elevadas nos barramentos usados para transportar a correspondenteinformação

76Computação Gráfica e Multimédia

 

Sistema simples de is ali ação raster

Page 77: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 77/352

Sistema simples de visualização raster• Tabela de look-up

 – Cada um dos elementos da tabela é usado para controlar a cor dopixel

 – A cor do pixel é controlada não pelo valor existente no mapa de pixeismas pelo valor contido na tabela (cada um dos valores do mapa depixeis é usado como índice de acesso à tabele de look-up)

 – N elementos os pixeis vão ter valores entre 0 e N-1

• É bastante fácil alterar o aspecto geral de uma imagem semalterar nenhum dos dados que especificam o pixmap

• É fácil mudar a cor de imagem para imagem ou de aplicaçãopara aplicação

• Em aplicações de análise de imagem, é fácil alterar oaspecto visual da imagem

• Permite efectuar a simulação de imagens animadas

77Computação Gráfica e Multimédia

 

Sistema simples de visualização raster

Page 78: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 78/352

Sistema simples de visualização raster

• Principais vantagens e desvantagens: – Simples, económico

 – Conversão das primitivas gráficas é muito lenta (feita por software acorrer no CPU)

 – A frequência de refrescamento do monitor está directamenterelacionada com os acessos ao frame buffer. Existe uma competiçãoentre o CPU e o controlador de vídeo no uso deste recurso. Quanto

maior for a frequência de varrimento, maior é o problema.• Solução mais sofisticada é criar dois bancos de memória:

 – Um mapeado directamente na RAM, para obter a melhor velocidadede transferência que é possível ter

 – Um pertencente ao controlador vídeo com:• Ligação especial ao sistema de memória• Velocidade de transferência de dados entre os dois bancos sincronizada

com a cadência de refrescamento do monitor

78Computação Gráfica e Multimédia

 

Si t d i li ã t d ó i

Page 79: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 79/352

Sistema de visualização raster com processador próprio

• Exemplo: – Frame buffer = 1024 x 1024 (8 bits / pixel) – Lookup table: 256 entradas, 12 bits / pixel (4 bits por cor)

• As instruções são executadas pelo processador gráfico – Move(x,y); line(x0,y0,x1,y1); rect(x0,y0,width,height); ...

• As instruções e argumentos são colados numa fila tipo FIFO (first in first out). Oprocessador gráfico retira as instruções da file e executa-as)

79Computação Gráfica e Multimédia

 

Page 80: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 80/352

3 - Tipos de media estáticos

TextoCésar Toscano 

Março / 2009 

(informação extraída de “Multimédia e Tecnologias Interactivas”, Nuno Ribeiro, FCA, 2007)

 

Texto

Page 81: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 81/352

Texto

• Meio adequado para transmitir informação essencial demodo preciso.

• Forma principal de comunicação assíncrona (desfasada notempo) entre pessoas.

• Exemplos: – Livros, jornais, revistas, mensagens SMS, …

• Formas possíveis na interacção Homem-Máquina: – Texto não formatado (plain text ): nr. de caracteres disponíveis é

limitado, dimensão dos caracteres é fixa, representação simples. – Texto formatado (rich text ): aparência mais rica, várias fontes e

dimensões. – Hipertexto: texto ao qual se adicionam hiperligações originando texto

não linear; permite navegação entre documentos de texto.

 

Natureza dupla do texto

Page 82: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 82/352

Natureza dupla do texto• O texto é simultaneamente uma representação visual da

linguagem e um elemento gráfico.• Na representação de texto:

 – Distinguir entre o “carácter abstracto” (conteúdo léxico) e a suarepresentação gráfica (aparência).

• Conteúdo: parte do texto que transmite o seu significado.• Aparência: atributo que altera a facilidade com que o texto é lido, a sua

agradabilidade; não altera substancialmente o significado do texto.

 – Considerar duas formas:• Forma como os caracteres ou idiomas escritos (as unidades

fundamentais da linguagem) se representam na forma digital; comorepresentar digitalmente o conteúdo léxico de um texto.

• Forma de representação visual dos caracteres representados digitalmente(texto imagem); qual é a aparência visual (ecrã ou papel) de um texto;abrange aspectos como caracteres tipográficos, espaçamento entre eles,disposição das linhas, parágrafos e secções, etc.

 

Representação do conteúdo textual

Page 83: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 83/352

Representação do conteúdo textual

• Alfabeto: conjunto de caracteres abstractos, sinais

de pontuação, numerais e símbolos matemáticos.Maiúsculas e minúsculas são consideradoscaracteres distintos.

• Necessário definir mapeamento entre cada um dos

caracteres abstractos de determinado alfabeto (oureportório de caracteres) e o correspondente valorguardado digitalmente.

• Normalização: essencial para garantir atransferência de texto entre vários sistemas digitaise evitar a corrupção linguística do texto.

 

Representação do conteúdo textual: ASCII e ISO 8859

Page 84: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 84/352

Representação do conteúdo textual: ASCII e ISO 8859

• American Standard Code for Information Exchange .• Norma dominante desde 1970. Adequado à língua inglesa. Usa 7 bits para

representar cada código: 128 caracteres no total.• Adoptado como norma internacional ISO (Internacional Organization for 

Standardization ) em 1972 – ISO 646. Suporta conjunto mais alargado decaracteres (primeiro sob a forma de variantes nacionais e, depois, variantesregionais) . Os caracteres passaram a ser representados por 8 bits, sendomantidos os primeiros 128 códigos ASCII e codificadas as letras acentuadas esímbolos de pontuação nos restantes 128 códigos.

• Posteriormente, normalizaram-se os conjuntos de caracteres de 8 bits com anorma ISO 8859 (10 partes): – ISO 8859-1: ISO Latin1, caracteres utilizados na maioria dos países da Europa

Ocidental, primeiros 128 caracteres são os mesmos do ASCII de 7 bits, os restantes128 são códigos para os idiomas europeus.

 – ISO 8859-2: ISO Latin2, para outros idiomas da Europa Oriental (Checo, Eslovaco,Croata).

 – ISO 8859-5: Cirílico – ISO 8859-7: Grego moderno – ISO 8859-8: Hebreu

• A norma ISO 8859 não chegou a atingir estatuto de norma universal (256caracteres são insuficientes para representar vários idiomas em simultâneo).

 

Representação do conteúdo textual: ISO 10646

Page 85: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 85/352

Representação do conteúdo textual: ISO 10646

• Norma de 32 bits, definida em 1991.

• Em simultâneo, consórcio de empresas (Adobe,Apple, Microsoft, …) definiram o Unicode : – Fornece códigos para 39000 caracteres, usando 16 bits

para codificar cada carácter. – Compatível com a norma ISO 10646 (conjunto de

caracteres Unicode é subconjunto dos caracteres ISO10646).

 – As linguagens HTML, XML e Java usam o Unicode.

 

Representação da aparência do texto (formatação)

Page 86: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 86/352

Representação da aparência do texto (formatação)

• Glifo: representação visual da forma e dimensão de

determinado código de carácter. Um carácter podeser representado por um conjunto infinito de glifos.• Fontes: forma de organização dos glifos. Os glifos

de uma fonte partilham em comum característicasvisuais (dimensão e forma) para se produzirem

representações legíveis e harmoniosas em papel ouecrã.• Local de armazenamento das fontes:

 – Ficheiros instalados no sistema. – Nos próprios documentos de texto (fontes embebidas no

próprio documento).

 

Representação da aparência do texto: fontes

Page 87: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 87/352

Representação da aparência do texto: fontes

• Fontes mono-espaçadas:

 – Cada carácter ocupa o mesmo espaço horizontal,independentemente da sua forma. – Exemplo: Co u r i e r .

• Fontes proporcionais: – O espaço horizontal ocupado depende da largura da

forma do carácter. – Exemplos: Times New Roman, Garamond, Helvética, Arial.

 – Proporciona um texto mais agradável que a fonte mono-espaçada.

 

Representação da aparência do texto: fontes

Page 88: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 88/352

Representação da aparência do texto: fontes

• Fontes com serifa:

 – A serifa é um traço minúsculo que se acrescenta àsextremidades dos glifos. – Também designadas como fontes romanas. – A legibilidade do texto é mais influenciada pelo

espaçamento entre caracteres do que ter ou não serifa.

• Fontes sem serifa: – Possuem aparência mais simples e despretensiosa. – Exemplos: Helvética, Univers, Arial. – Mais adequadas para títulos de janelas e itens em

aplicações informáticas (a serifa é um traço muito

pequeno, pouco visível em dispositivos de pequenaresolução).

 

Representação da aparência do texto: fontes

Page 89: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 89/352

Representação da aparência do texto: fontes

• Fontes com forma vertical:

 – Possuem glifos com linhas perfeitamente verticais. – Exemplos: Times New Roman.

• Forma itálica : – Possuem glifos com linhas verticais com inclinação para a

direita (para imitar escrita manual). – Utilizadas para identificar palavras/expressões de idiomas

estrangeiros, ou para enfatizar um conceito. – Usualmente, a fonte itálica acompanha ou é uma variação

de uma fonte vertical.

 – Exemplos: Times New Roman Italic, Lu c i d a  H a n d w r i t i n g  , Lucida Cal l i gr aphy .

 

Representação da aparência do texto: fontes

Page 90: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 90/352

Representação da aparência do texto: fontes

• Fonte leve:

 – Espessura normal para os traços dos glifos.• Fonte pesada: – Maior espessura dos traços dos glifos, texto fica com

aparência mais escura e sólida. – Também designadas como fontes negrito ou bold.

 – Constituem normalmente versões de fontes leves. – As fontes negrito são intrusivas, reservadas para assinalar

cabeçalhos, destacar palavras ou conceitos chave; nãodevem ser usadas para frases longas ou parágrafoscompletos.

 – Em ecrãs de computador o negrito tem mais efeito que oitálico.

 

Representação da aparência do texto: fontes

Page 91: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 91/352

Representação da aparência do texto: fontes

• Fontes para texto contínuo:

 – Distinguir entre• fontes mais adequadas para o texto do corpo de um livro• fontes mais adequadas a cabeçalhos, sinais, slogans ou posters

publicitários.

 – Devem ser discretas (não impor o texto ao leitor), paranão interferir com a mensagem principal do texto.

 – Devem ser fáceis de ler, e evitar a fadiga do leitor. – Fontes para texto contínuo tendem a ser leves e

possuírem forma vertical e com serifa.

• Fontes para texto isolado: – O objectivo é transmitirem mensagens curtas. – Fontes decorativas (p.e., A l g e r i A n ). – Fontes de cabeçalho (p.e., Bauhaus 93).

 

Representação da aparência do texto: fontes

Page 92: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 92/352

Representação da aparência do texto: fontes

• Família de fontes: variações sobre um mesmo

conjunto de glifos. Exemplo: fonte de forma verticalcom versões itálico e negrito.• A medição das fontes é feita com pontos (pt) ou

picas (pc).

 – ponto == 0,3528 mm, para medir a dimensão do carácter(altura entre o topo do carácter mais alto e a base docarácter mais baixo);

 – Pica == 4,2333 mm, para medir o espaçamento entrelinhas de texto;

 – Exemplo: Times New Roman 20 pt.

 

Representação da aparência do texto: fontes

Page 93: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 93/352

Representação da aparência do texto: fontes

• Fontes outline :

 – Fontes armazenadas sob a forma vectorial. – Aparência independente da plataforma. – Exemplos:

• Adobe Type 1 (Postscript): os glifos são obtidos por intermédio depequenos programas escritos em Postscript que descrevemcurvas de Bézier cúbicas;

• TrueType: as formas dos glifos são descritas com base em curvasquadráticas;• OpenType: unificação dos dois formatos anteriores.

• Fontes bitmapped : – Fontes guardadas sob a forma de bitmap.

 – Exemplo: fontes de ecrã do MS Windows.

 

Representação da aparência do texto: layout

Page 94: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 94/352

Representação da aparência do texto: layout 

• Disposição do conteúdo textual: modo como os caracteres visualmente secombinam em palavras, frases, linhas, parágrafos, e outras unidades de divisão.Modo como o texto se dispõe no ecrã ou página de papel.

• Formatos para documentos: especificam os cabeçalhos, títulos, capítulos,parágrafos, listas, notas de rodapé, referências e índices do documento.• Formatos de descrição de estrutura em documentos de texto:

 – Informação de controlo adicionada ao texto sob a forma de marcas (markup ) paraidentificação dos vários componentes da estrutura do documento.

 – Linguagens de markup : SGML (Standard Generalized Markup Language), RTF (RichText Format), MS Word, XML.

 – Estas marcas são normalmente invisíveis ao Utilizador.

 – Certas linguagens de markup permitem inserir elementos para: ligações a outrosdocumentos, localização de imagens, clips, etc.• Formatos de descrição de páginas:

 – Baseiam-se numa linguagem de programação para descrever as páginas de umdocumento em termos de acções que permitem imprimi-las. Estes comandos sãogerados automaticamente pelos processadores de texto e interpretados pelo dispositivode impressão ou pela aplicação de visualização no ecrã.

 – Exemplos: PDF (Portable Document Format ) e PS (PostScript ).

 – Permitem criar documentos “transportáveis”. As formas são descritas em termosvectoriais através de fontes outline. Estes formatos conseguem representar comprecisão os efeitos aplicados por uma linguagem de markup.

 

Hipertexto e Hipermédia

Page 95: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 95/352

Hipertexto e Hipermédia

• Hipertexto: – Texto aumentado com ligações ( links ), apontadores para outras

partes de textos do mesmo ou outros documentos. – Texto não linear.

 – Fonte da ligação (âncora): local do documento onde a ligação ocorre. – Destino da ligação: local para onde a ligação aponta (no mesmo

documento ou numa determinada parte de outro documento).

 – Metáfora da navegação: o leitor navega por um conjunto de textos.• Hipermédia:

 – Generalização do conceito anterior, onde, para além de texto, seinterligam vários tipos de media : imagens, vídeos, registos sonoros,… .

 

Compressão de texto

Page 96: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 96/352

Compressão de texto

• Reduz o espaço de armazenamento de um texto,

através da exploração de redundâncias váriasexistentes no texto (compressão sem perdas).• Exemplos:

 – Codificação Huffman .

 – Codificação LZW (Lempel-Ziv and Welsh ).

 

Cifragem de texto

Page 97: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 97/352

Cifragem de texto

• Aplicação de métodos (algoritmos) de criptografia

para codificar o texto de uma forma que sópossibilita a sua leitura a quem possua os meiosnecessários para descodificar o texto cifrado.Garante a privacidade dos dados.

• Exercício: Quais são os métodos/algoritmos comunspara cifragem de documentos?

 

Page 98: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 98/352

4 - Tipos de media estáticos

Gráficos Vectoriais

César Toscano 

Março / 2009 

(informação extraída de “Multimédia e Tecnologias Interactivas”, Nuno Ribeiro, FCA, 2007)

 

Gráficos e bitmaps

Page 99: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 99/352

Gráficos e bitmaps• Imagem bitmap : a informação visual que constitui a imagem

é representada sob a forma de uma matriz de pixeis.

• Gráficos (desenhos vectoriais): a informação visual érepresentada sob a forma de equações matemáticas quedescrevem os elementos bidimensionais (linhas, rectângulos,ovais, polígonos, curvas, …) e tridimensionais (sólidos, …).

• Conteúdos gráficos são corrigíveis: a sua representaçãodigital retém informação estrutural.

• Exemplos de aplicações de edição gráfica 2D / 3D: – Corel Draw, Aldus Freehand, Adobe Illustrator, Autodesk AUtoCAD,

Autodesk 3DStudio, Blender (www.blender.org).• Operação de rendering : operação que interpreta as

equações matemáticas que descrevem os objectos gráficose gera os pixeis da imagem bitmap correspondente.

• Imagens bitmap não são sujeitas à operação de rendering .

 

Vantagens / desvantagens dos gráficos vectoriais

Page 100: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 100/352

g g g

• Facilidade de manipulação das formas ou objectosdesenhados sem perda de informação.

• Ideal para a produção de logótipos, símbolos gráficos, botõespara aplicações interactivas, ícones: boa definição daslinhas, independente da sua escala.

• A representação digital é mais compacta que no caso das

imagens bitmap.• Principal desvantagem: a operação de rendering (necessáriapara qualquer imagem vectorial) é uma operação que exigeum grande poder de cálculo do CPU.

• O realismo obtido por meio da digitalização de uma fotografia

é muito difícil de ser atingido por meios gráficos.

 

Representação gráfica - Modelos

Page 101: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 101/352

Representação gráfica Modelos

• Um gráfico é constituído por objectos gráficos (linhas,rectângulos, …), que podem ser eliminados, adicionados etransformados individualmente em todos os seus atributos(forma, espessura, cor, padrão de preenchimento, …).

• Vector: principal forma de descrição de um objecto gráfico.• Modelo (gráfico): descrição abstracta (matemática) de todos

os objectos 2D e 3D que constituem determinada cena;principal objectivo é modelar a realidade através deexpressões matemáticas. Um gráfico é um modelo.

• Objectos reais que podem ser modelados graficamente: – planta de uma casa,

 – casa.• Tipos de modelos gráficos:

 – geométricos, sólidos, físicos, empíricos, de desenho.

 

Modelos geométricos

Page 102: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 102/352

Modelos geométricos• Modelação gráfica mais simples e comum - o modelo é definido à custa

das formas geométricas 2D e 3D básicas (primitivas gráficas): – Modelação a 2D: linhas, rectângulos, elipses, polígonos, curvas. – Modelação a 3D: as primitivas gráficas são cubos, esferas, cones e cilindros;

os objectos são definidos à custa destas formas geométricas mais simples;uma mesa é modelada por quatro cilindros (pernas da mesa) e um prismarectangular (tampo da mesa).

• Curvas e superfícies curvas são descritas por polinómios parametrizados.• As primitivas gráficas são definidas por coordenadas locais, que são

depois transformadas (por translação, rotação ou variação de escala) em

coordenadas do modelo (world coordinates ).• As primitivas gráficas são também organizadas ou combinadas emestruturas hierárquicas.

• Exemplos de bibliotecas de primitivas gráficas (normalizadas), definem eorganizam primitivas gráficas: – OpenGL (Open Graphics Library ) – Microsoft Direct3D

 – ISO GKS (Graphic Kernel System ) – ISO PHIGS (Programmers Hierarchical Interactive Graphic System ), ISO

PHIGS+ – IGES (Initial Graphics Exchange Specification) – Java3D

 

Modelos sólidos

Page 103: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 103/352

ode os só dos• Descrevem os objectos tridimensionais através de técnicas específicas para permitir a

modelação de sólidos complexos.• Técnica CSG (Constructive Solid Geometry ):

 – combina sólidos através de operações de união, intersecção e diferença; – um cilindro oco é definido com base num cilindro sólido, subtraindo-lhe um cilindro sólido com menordiâmetro.

• Técnica das superfícies de revolução: – Técnica de criação de objectos 3D a partir de objectos 2D; – os sólidos são criados a partir da rotação de uma curva 2D em torno de um eixo no espaço 3D; – Exemplos: modelação de copos, garrafas e peças de xadrez.

• Técnica da extrusão: – Criação de sólidos complexos através do prolongamento de um contorno 2D no espaço 3D ao longo

de um caminho arbitrário. – Exemplos:• prolongamento de um círculo ao longo de uma linha curva modelo de uma pipa;• prolongamento de um círculo ao longo de uma linha recta modelo de uma canalização

• Estas técnicas de modelação de sólidos complexos permitem construir modelos gráficos deuma forma mais expedita e modelar sólidos mais realistas. No entanto, o rendering destetipo de modelos é mais lento.

• Em termos de representação, a maior parte dos objectos é definida à custa de pequenostriângulos e polígonos (12 objectos de uma cena podem ser modelados com base em

10.000 polígonos).• Modelos sólidos pré-concebidos: originalmente definidos para sistemas CAD, disponíveisem ficheiros DXF (Data Exchange Format ) sob a forma de livrarias.

 

Modelos sólidos

Page 104: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 104/352

Aplicação da técnica das

superfícies de revolução

Aplicação da técnica de extrusão

 

Modelos físicos, empíricos e de desenho

Page 105: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 105/352

, p• Modelos físicos:

 – Descrevem as forças, tensões e esforços aplicados aos objectos que

constituem determinada cena; – Produzem imagens com muito realismo.• Modelos empíricos:

 – Permitem descrever fenómenos naturais como nuvens, ondas, fogo eplantas;

 – São obtidos por observação da natureza; – Técnicas comuns:

• Fractais: para modelar recortes das montanhas, outras características doterreno e nuvens;

• Sistemas de partículas: para modelar fogos e explosões.

• Modelos de desenho: – Descrevem um objecto gráfico em termos de acções de desenho / 

pintura;

 – As acções são definidas através de uma linguagem (com ciclos,condições, etc).

 

Formatos externos para modelos

Page 106: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 106/352

p

• Úteis para importar / exportar modelos construídos

por outras ferramentas de autoria gráfica. Permitemportanto a interoperabilidade entre aplicaçõesdistintas (e correspondentes modelos gráficos).

• ISO CGM (Computer Graphics Metafile )

• Formatos usados pelo AutoCAD• PS (Postscript )• PDF (Portable Document Format )• RIB (RenderMan Interface Library )

 

Operações gráficas

Page 107: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 107/352

p ç g• Edição de primitivas: especificação do tipo de primitiva usar, coordenadas dos

vértices, …

• Operações de: – Edição de primitivas: especificação e modificação dos parâmetros de definição dasprimitivas geométricas.

 – Edição estrutural (construção da geometria do objecto): criação e modificação dosconjuntos de primitivas que constituem um modelo, estabelecimento das relaçõesespaciais entre as primitivas, aplicação de transformações (rotações, translações,variações de escala).

 – Aplicação de materiais e mapeamentos: atribuição do aspecto de mármore no tampode uma mesa, dar o aspecto de madeira de carvalho a uma cadeira, etc. – Iluminação: especificação das propriedades de cor de um objecto, forma como a luz

interage e é reflectida pelo objecto. As componentes de luz usadas são: difusão,especular/reflexão, ambiente.

 – Visualização: especificação da projecção pretendida e do volume de visualização;definição de várias câmaras automáticas na cena para obter perspectivas diferentes.

 – Sombreamento (modo como a luz interage com os objectos do modelo) e rendering .

 

Criação de materiais

Page 108: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 108/352

ç

• Especificação das propriedades de cor do material: formacomo a luz interage ou é reflectida pela superfície do objectoonde o material é aplicado.

• Componentes principais da luz: – Difusão (diffuse ): cor própria do objecto, cor reflectida pelo objecto

quando iluminado, parte do objecto que possui mais iluminação. – Especular/Reflexão (specular ): corresponde ao brilho que se nota na

superfície do objecto, é a cor que representa o ponto de luz (highlight )que sobressai nos objectos brilhantes (normalmente situada naperpendicular à fonte de luz).

 – Ambiente (ambient ): cor da luz circundante, presente em toda a cenamodelada, geralmente representa pela parte do objecto que fica nasombra.

 

Criação de materiais

Page 109: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 109/352

ç• Outras técnicas para criação de materiais com aspecto realista recorrem

a: – Mapeamento de texturas: aplicação de uma imagem bitmap ou fotografia a

uma superfície (para reproduzir mais fielmente a sua textura); também podemser aplicadas sequências de imagem (clips); exemplo: bico de gás de fogão aficar incandescente.

 – Mapeamento de colisões (bump mapping ): utilizado para simular superfíciesrugosas ou irregulares, picadas ou corroídas; utilizado também para imitar asperturbações mínimas resultantes de riscos, cortes e lacerações nosobjectos.

 – Mapeamento de deslocamentos: introdução de alterações na posição desuperfícies, para reproduzir elevações, depressões ou canais na superfíciedos objectos.

 – Mapeamentos de ambiente e de sombra: para simular algumas formas dereflexão da luz, por exemplo, para variar a transparência de um objecto, paratornar algumas partes mais brilhantes ou apagadas, para simular a reflexãoespelhada da cena onde o objecto se insere na superfície do mesmo.

• Shader : procedimento programável (em software) para a criação doaspecto dos materiais; alguns dos materiais existentes (mármore,madeiro, tijolo) podem ser construídos por algoritmos em software.

 

Operações de iluminação

Page 110: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 110/352

p ç ç

• Permitem iluminar uma cena com objectos gráficos a partirde várias fontes de luz: – Luz ambiente: iluminação constituída por luz de fundo, que vêm de

todas as direcções com uma intensidade constante.

 – Pontos de luz: iluminação constituída por luz que provém de pontosespecíficos no espaço e que se atenua à medida que a distânciaaumenta.

 – Luzes direccionais: constituídas por fontes de luz localizadas noinfinito, produzem raios de luz numa determinada direcção comintensidade constante.

 – Spotlights : constituídos por fontes de luz que produzem um raio de luzcónico a partir de um dado ponto.

• As fontes de luz podem ser colocadas em qualquer posição

de uma cena gráfica (não possuem massa nem forma).

 

Operações de visualização

Page 111: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 111/352

p ç ç

• Volume de visualização: região do espaço do

modelo gráfico a ser visualizado.• As operações de visualização produzem as imagensbitmap a partir do modelo gráfico tridimensional (ouantes, a partir do volume de visualização) atravésda aplicação de uma transformação onde sãoprojectadas as coordenadas 3D de modelo emcoordenadas 2D da imagem a visualizar.

• A disposição de várias câmaras automáticas numacena gráfica permite obter várias perspectivas da

cena.

 

Operação de rendering 

Page 112: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 112/352

p ç g

• A operação de rendering converte um modelo gráfico numa imagembitmap, incluindo toda a informação de sombreamento, mapeamento,

iluminação e visualização. É um processo lento por natureza, onde énecessário calcular os atributos dos pixeis da imagem que resultam dacombinação das formas dos objectos com a informação desombreamento, mapeamento, iluminação e visualização.

• Vários níveis de rendering , correspondentes a diversos métodos desombreamento (shading methods ).

• Flat shading : produz objectos com cor uniforme.

• Gouraud shading ou smooth shading : produz um aspecto mais suaveatravés da aplicação de gradientes de cor em cada face dos objectos domodelo.

• Phong shading : produz visualizações com aspecto mais realista atravésda adição de reflexos especulares (highlights ) aos objectos da cena.

• Técnicas mais sofisticadas - ray tracing e radiosity 

 – Baseiam-se em modelos físicos do comportamento da luz; – Produzem o maior realismo possível.

 

Page 113: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 113/352

5 - Tipos de media estáticos

Imagens bitmap 

César Toscano 

Março / 2009 

(informação extraída de “Multimédia e Tecnologias Interactivas”, Nuno Ribeiro, FCA, 2007)

 

Introdução

Page 114: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 114/352

• A imagem é descrita em termos da cor e brilho dos

vários pixeis que constituem a imagem. As imagensbitmap não são conteúdos corrigíveis (não contéminformação estrutural).

• São normalmente produzidas por processos decaptura do mundo real (através de scanner, e demáquina fotográfica digital). Também podem sergeradas no computador (imagens sintetizadas -synthesized still images ).

• Ferramentas de edição de imagem: aplicações de

autoria de imagem para criar e modificar os pixeisque as compõem (ex: Adobe Photoshop e GIMP).

 

Representação bitmap 

Page 115: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 115/352

• Matriz bidimensional com identificação da cor e brilho(intensidade de luz) de cada pixel que constitui a imagem. Os

pixéis são identificados por um par de coordenadas eorganizados em linhas e colunas.• Pixel == picture element 

• Pixel aspect ratio : valor numérico que representa a razãoentre a largura do pixel e a sua altura.

• Formatos comuns de bitmaps : – TIFF (Tagged Image File Format); – GIF (Graphics Interchange Format); – etc.

• O que são os processos de:

 – OCR (Optical Character Recognition ) – e Autotracing?

 

Modelos de cor

Page 116: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 116/352

• A cor é um fenómeno complexo, a sensibilidade artística deve sercomplementada com conhecimentos tecnológicos sobre a sua

representação em imagens digitais.• Um pixel numa imagem digital possui um valor numérico (amplitude) que

representa: – a cor preta ou branca em imagens bitonais; – um nível de cinzento em imagens monocromáticas; – os atributos de cor em imagens coloridas.

• A cor == sensação subjectiva produzida no cérebro em resposta àpresença de luz.

• A luz é uma forma de radiação electromagnética, medida pelo seucomprimento de onda. Espectro electromagnético (gama contínua defrequências):

 

Luz visível

Page 117: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 117/352

• Luz visível: região do espectro electromagnético queestimula a retina do olho humano (entre 700 e 400nanometros), situada entre a luz vermelha e a luzvioleta. Cada comprimento de onda do espectrovisível representa uma cor particular: – Vermelho (red), Laranja (orange), Amarelo (yellow), Verde

(green), Azul (blue), Anil (indigo), Violeta (violet)

• Cor branca: combinação de todas as cores doespectro visível.

• Cor preta: sensação equivalente à ausência dequalquer comprimento de onda no espectro da luz

visível.

 

Interacção da luz com um objecto

Page 118: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 118/352

• A forma pela qual a luz visível interage com os objectos depende: – Das frequências da luz incidente; – Dos átomos que constituem o objecto.

• Devem ser considerados três efeitos nesta interacção: absorção, reflexão etransmissão.• Quando uma onda de luz com uma frequência semelhante à frequência natural

do átomo o atinge, os electrões desse átomo absorvem a energia da onda de luz,convertendo-a em movimentos vibratórios (sendo convertidos em energia térmicapor contacto com os restantes átomos do objecto). Átomos diferentes possuemfrequências naturais distintas pelo que absorvem frequências de luz distintas.

• Nos restantes casos, as restantes frequências de luz são reemitidas pelo objecto: – Se o objecto for transparente, a luz é reemitida no lado oposto do objecto (as vibrações

dos electrões são transmitidas aos átomos vizinhos; as frequências de luz incidentessão transmitidas pelo objecto);

 – Se o objecto for opaco, a luz é reemitida pela parte do objecto onde a luz incide, sendoportanto reflectida.

• A cor dos objectos resulta da forma como os objectos interagem com a luz e daforma como a reflectem ou transmitemA cor de um objecto não existe noobjecto em si, mas na luz que incide e é reflectida e transmitida pelo objecto.

• Exemplo: se um objecto absorve todas as frequências da luz visível excepto afrequência associada à cor verde, terá a cor verde quando iluminado com a luzbranca.

• Os pigmentos são os químicos usados na superfície dos objectos que alteram aforma como a luz é reflectida e transmitida pelo objecto.

 

Modelo de cor aditivo

Page 119: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 119/352

• O olho humano é constituído por dois tipos diferentes de células sensíveis à luz:os bastonetes e os cones. Os cones são sensíveis à luz e são de três tipos,detectando três comprimentos de onda diferentes (vermelho, verde e azul). A

percepção humana da cor deriva da resposta destas células à presença devalores diferentes nos três comprimentos de onda.• R (red ), G (green ) e B (blue ) são cores primárias aditivas: qualquer cor é definida

através da especificação individual da quantidade de luz de cada uma destascomponentes. – 100%,0,0 cor primária vermelha pura – 50%,0,0 cor vermelha mais escura – 100%,50%,50% cor malva

 – 0,0,0 cor preta (ausência de cor) – 100%,100%,100% cor branca• Os ecrãs de computador e televisão usam o modelo RGB: cada pixel é

constituído por três tipos diferentes de fósforo, emitindo (por estimulaçãoindividual) as cores vermelha, verde e azul.

• Os scanners também usam o modelo RGB.• Cores primárias (subtractivas) utilizadas na pintura: CMY (cyan , magenta , yellow ).

Correspondem às cores complementares das cores primárias aditivas.

• Atenção: o modelo RGB não permite especificar todas as cores do espectro deluz visível; há cores que não se conseguem obter por adição das trêscomponentes R, G e B. No entanto, a maioria das cores existentes no mundo realsão representadas por este modelo.

 

Profundidade de cor

Page 120: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 120/352

• Profundidade de cor, profundidade do pixel (pixel depth ) ouprofundidade de amplitude (amplitude depth ):

 – informação de cor relativa a um ponto, codificada em N bits por pixel.• Valor mais do que suficiente para representar a quantidadede cores distinguidas pelo olho humano: 24 bits / pixel, 8 bitspara cada cor primária (total de 16.777.216 cores).

• Profundidades de cor de 30, 36 e 48 bits são usadas emscanners para aumentar a precisão da digitalização e

conseguir melhores aproximações quando a profundidade decor for reduzida em apresentações no ecrã.• Técnica da CLUT: a profundidade de cor dos pontos da

imagem é representada por 8 bits e mantida numa tabela; ovalor de cada pixel na imagem digital determina não aprofundidade de cor do ponto mas o índice de acesso à

tabela. A tabela CLUT é usualmente guardada juntamentecom a imagem digital.

 

Resolução

Page 121: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 121/352

• Medida da quantidade de informação visual que a imagem contém por unidade decomprimento ou definição com que o dispositivo de visualização (ou impressão) aproxima acontinuidade inerente da imagem através da utilização de unidades discretas (os pixéis): – Tantos pontos por polegada (vertical e/ou horizontal) OU a imagem contém X pontos na horizontal e

Y pontos na vertical.• A resolução de uma impressora ou scanner (device resolution ) é o número de pontos por

unidade de comprimento – pontos por polegada (dpi – dots per inch ). Quais são os valorestípicos?

• A resolução num vídeo especifica a dimensão dos fotogramas (frames ). Qual é a resoluçãode um vídeo PAL? E de um vídeo NTSC?

• Atenção, distinguir a dimensão física (razão entre dimensão em pixéis e resolução dodispositivo) da dimensão natural (razão entre dimensão em pixéis e resolução natural). Osoftware que apresenta a imagem num dispositivo de saída deve aplicar um factor deescala à imagem (razão entre resolução do dispositivo e a resolução natural da imagem).

• Exemplo: fotografia com 6x4 polegadas em largura/altura digitalizada a 600 dpi dá umabitmap de 3600 x 2400 pixéis. Esta imagem apresentada num ecrã com resolução de 72 dpiterá as seguintes dimensões: – Largura = 3600 / 72 = 50 polegadas – Altura = 2400 / 72 = 33,33 polegadas – Neste caso, o factor de escala deveria ser 72 / 600 (0,12) para que a imagem seja apresentada no

ecrã com as suas dimensões naturais.• Interpolação de pixéis: técnica de aumento de uma imagem em que a resolução natural da

imagem é menor que a resolução do dispositivo de apresentação. O designer de umaaplicação multimédia deve utilizar imagens com resoluções maiores às dos dispositivosfísicos de apresentação.

 

Compressão e formatos de imagem

Page 122: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 122/352

• As técnicas de compressão permitem reduzir o espaço dearmazenamento ocupado por uma imagem bitmap .

• Qual é o espaço ocupado por uma imagem RGB, com as dimensões deuma página A4 (210mm x 297mm), com profundidade de cor de 24 bitspor pixel e adquirida através de um scanner com uma resolução de 300dpi? … 24,891 MBytes

• Técnicas de compressão: RLE (run-length encoding ), LZW (Lempel, Ziv and Welch ), compressão preditiva ou diferencial, compressão baseadaem transformadas (JPEG).

• RLE: substitui conjuntos de pixéis consecutivos com a mesma cor(mesma tonalidade) por uma representação mais compacta. A eficiênciada técnica depende do conteúdo existente na imagem a comprimir.Porquê? A técnica RLE é uma técnica de compressão com perdas?

• Que formato de compressão é usado pelos faxes convencionais?• A técnica RLE é suportada pelos formatos TIFF, BMP, PCX e Photoshop.

 

Tipos de compressão

Page 123: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 123/352

• Compressão sem perdas: – Codificação de comprimento variável (Huffman)

 – Codificação baseada em dicionários (LZ77, LZ78, LZW) – PNG e Winzip usam LZ77 e LZ78 – TIFF, GIF e PDF usam LZW

• Compressão com perdas: – a compressão seguida da descompressão conduz à perda de alguma

informação da imagem inicial. – adequa-se a tipos de media resultantes de processos de digitalização. – A sua concepção passa pela determinação e eliminação apenas da

informação que é irrelevante do ponto de vista da percepção humana (visuale auditiva). Atingem rácios de compressão elevados sem perda aparente dequalidade.

 – Norma internacional JPEG – Joint Photographic Experts Group: representa aimagem por meio de coeficientes de uma transformada matemática (DCT -Transformada Discreta do Co-seno), que são depois quantificados.

 – A compressão JPEG foi definida para determinado tipo de imagens. Quaissão?

 

Formatos de imagem

Page 124: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 124/352

• BMP, CGM, DIB, EMF, GIF, JPEG, PCD, PCX,

PICT, PAINT, PNG, PSD, RGB, RLE, TGA, TIFF,WMF• Informação normalmente existente nos ficheiros:

 – Identificador do tipo de ficheiro. – Tipo de compressão, dimensões da altura/largura,

resolução natural, profundidade de cor. – Paleta de cores (se necessário). – Valores do pixéis (informação sobre a sua cor).

 

Page 125: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 125/352

6 - Computação Gráfica

Algoritmos de processamento de imagem em 2DConceitos básicos de Geometria Analítica

César Toscano Março/2008 

 

Geometria Analítica

Page 126: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 126/352

Y

XOrigem

P(x,y)

 

Geometria Analítica

Page 127: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 127/352

Dois pontos especificam uma recta.

(y-y1) / (x-x1) = ( y2-y1 ) / (x2-x1)(y-y1) (x2-x1) = (y2-y1) (x-x1)y-y1 = ((y2-y1)(x-x1)) / (x2-x1)y = ((y2-y1) / (x2-x1))(x-x1) + y1

y = m (x-x1) + y1

y = mx - mx1+ y1

y = mx + b equação de uma recta, expressa segundo o seu declive

m (declive)

b (ordenada na origem)

y

x

P2

(x2,y2)P1

(x1,y1)

 

Geometria Analítica

Page 128: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 128/352

Equação geral de uma recta:

(y2-y1)x – (x2-x1)y + x2y1 – x1y2 = 0rx + sy + t = 0

Da comparação entre as duas equações:m = - (r / s) b = - (t / s)

 

Geometria Analítica

Page 129: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 129/352

Determinação do ponto de cruzamento entre duas rectas

Recta1 y = m1x + b1

Recta2 y = m2x + b2

Se o ponto (xi,yi) é comum a ambas as rectas:

yi = m1 xi + b1 e yi = m2 xi + b2

m1 xi + b1 = m2 xi + b2

xi = (b2 - b1) / (m1 - m2) e yi = (b2m1 – b1m2) / (m1 –m2)Se as rectas são paralelas, então m1 = m2

Se as rectas forem especificadas através da equação geral:

xi = (s1t2 – s2t1) / (s2r1 – s1r2) e yi = (t1r2 – t2r1) / (s2r1 – s1r2)

 

Geometria Analítica( )

Page 130: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 130/352

Segmentos de recta

P3 está contido no segmento de recta se:

1. y3 = mx3 + b ou rx3 + sy3 + t = 02. min(x1,x2) <= x3 <= max(x1,x2)

3. min(y1,y2) <= y3 <= max(y1,y2)

Equação de um segmento de recta na forma paramétrica:

x = f(u) e y = g(u)x = x1 + (x2-x1)u e y = y1 + (y2-y1)u

em que 0 <= u <= 1

O segmento de recta é construído à custa do parâmetro u, variando este de 0 a 1.

Y

X

P1

(x1,y1)

P2

(x2,y2)

P3

(x3,y3)

 

Geometria Analítica

Page 131: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 131/352

Comprimento de um segmento de recta (ou distância entre

dois pontos)

Teorema de Pitágoras o quadrado da hipotenusa é igual àsoma dos quadrados dos catetos

L2 = (x2-x1)2 – (y2-y1)2

L = √((x2-x1)2 – (y2-y1)2)

Y

X

P1

(x1,y1)

P2

(x2,y2)

 

Geometria Analítica

Page 132: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 132/352

Ponto médio de um segmento de recta:

xm = (x1+x2) / 2ym = (y1+y2) / 2

 

Geometria Analítica

Page 133: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 133/352

Rectas perpendiculares:

Recta1 y = m1x + b1

Recta2 y = m2x + b2

Se a Recta1 é perpendicular à Recta2, qualquer recta paralela à Recta1

também é perpendicular à Recta2:

y = m1x também é perpendicular a y = m2x+b2

Aplica-se argumento idêntico à Recta2:y = m2x também é perpendicular a y = m1x+b1

y

x

P1(x1,y1)P2

(x2,y2)

Lc2 c1

y=m1xy=m2x

 

Geometria Analítica

Page 134: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 134/352

Se as rectas são perpendiculares, o triângulo é recto,aplicando-se o teorema de Pitágoras:

L2= c1

2 + c22

c12

= x12 + y1

2 e c22

= x22 + y2

2

L2= x1

2 + y12 + x2

2 + y22

(x1-x2)2 + (y1-y2)2 = x12 + y12 + x22 + y22

y1 / x1 = - (x2 / y2)

m1 = - 1 / m2

 

Geometria Analítica

Page 135: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 135/352

Utilizando a equação geral de uma recta, duas rectas

são perpendiculares se:r1r2 + s1s2 = 0

Se (xa1,ya1) e (xb1,yb1) são pontos da Recta1e (xa2,ya2) e (xb2,yb2) são pontos da Recta2, então:

(xb1-xa1) (xb2-xa2) + (yb1-ya1) (yb2-ya2) = 0

 

Page 136: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 136/352

7 - Computação Gráfica

Algoritmos de processamento de imagem em 2DConversão por varrimento de linhas

César Toscano Março/2008 

 

Conversão por varrimento de linhas

Page 137: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 137/352

• Objectivo: a linha desenhada no ecran deve aproximar tantoquanto possível a linha ideal (puramente matemática).

• Requisitos: – Para rectas com -1 <= m <= 1: iluminar um pixel em cada coluna; – Rectas com outros declives: iluminar um pixel em cada linha;

 – As linhas devem ter brilho constante e independente do seucomprimento e/ou orientação;

 – O desenho deve ser o mais rápido possível; – Deve ser possível definir os atributos de desenho de uma linha:

espessura, estilo, tipo de caneta; – Regiões correspondentes aos extremos da linha podem ser

desenhadas de forma diferente; – Diminuír o efeito de escada (anti-aliasing).

 

Conversão por varrimento de linhas

Page 138: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 138/352

• Considerem-se: – Linhas com um pixel de espessura;

 – Pixeis que podem assumir dois valores possíveis (p.e., preto ebranco); – Grelha uniforme;

 – Coordenadas (x,y) são números inteiros; – pixel é representado por um círculo centrado em (x,y); – Não existem intersecções entre os diversos círculos (na prática, não é

bem assim ...); – Casos triviais de desenho de uma linha:

• Linhas horizontais e verticais;

• Linhas de declive +1 ou -1.

Modelo deRepresentação

dos pixeis

 

Algoritmo incremental

Page 139: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 139/352

|m| <= 1

P0 = (x0,y0) extremo esquerdo

P1 = (x1,y1) extremo direitom = ∆x / ∆y

yi = mxi + b para cada xi desde x0 até x1

Estratégia:

 – iluminar cada pixel P i = (xi, Round(yi)) em que Round(yi) = Floor(0,5 + yi)

Esta estratégia é ineficiente, em cada iteração são efectuadas três operações aritméticas emvírgula flutuante: multiplicação, adição e função Floor().A multiplicação pode ser eliminada:

yi+1 = mxi+1 + b = m(xi + ∆x) + b = yi + m∆xe, se ∆x = 1, então yi+1 = yi + m(alteração de uma unidade em x provoca alteração em y de m unidades)

Exercícios: – Desenvolver algoritmo similar para o caso de linhas com |m| > 1 (dica: alterar os papéis de x e y,

incrementar y de uma unidade, e x de ...); – Desenvolver algoritmo para desenhar linhas de qualquer declive.

 

Algoritmo incremental

Page 140: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 140/352

 

Algoritmo do ponto médio

Page 141: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 141/352

• Variação do algoritmo de Bresenham (variação do algoritmo incrementalmas usando aritmética inteira).

• Considere-se que 0 < |m| < 1 e os pontos extremos P0(x0,y0) e P1(x1,y1)P = (xp,yp) ponto escolhido previamente;E e NE pontos a escolher (ou um ou outro)

na próx. iteracção;M = (xp+1,yp+1/2) ponto médio;Q = (xp+1, ...) ponto de intersecção.

• O ponto a escolher deve ser aquele que está mais perto do ponto Q: – Calcular a posição de M relativamente à linha; – Se M estiver acima da linha escolher E;

 – Se M estiver abaixo da linha escolher NE.

P(xp,yp)

NE

E

--- MQ -----

 

Algoritmo do ponto médio

Page 142: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 142/352

• Formulação:

F(x,y) = rx + sy + t = 0∆y = y1 – y0 e ∆x = x1 – x0

y = (∆y/ ∆x) x + b

F(x,y)=

∆y x – ∆x y + b ∆x=

0

F(x,y) = 0 para (x,y) pertencente à linha;

F(x,y) > 0 para todos os pontos debaixo da linha;

F(x,y) < 0 para todos os pontos acima da linha.

 

Algoritmo do ponto médio

Page 143: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 143/352

F(M) = F(xp+1,yp+1/2) = r(xp+1) + s(yp+1/2) + t

F(M) > 0 escolher ponto NEF(M) < 0 escolher ponto E

F(M) = 0 indiferente (p.e, escolher E)

Depois da escolha de um dos pontos quais serão ospróximos valores para M e F(M):

 – M’

 – F(M’)

 

Algoritmo do ponto médio

Page 144: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 144/352

a) Se foi escolhido o ponto E:

M’ = (xp+2 , yp+1/2)

F(M’) = r(xp+2) + s(yp+1/2) + t

F(M’) – F(M) = (r(xp+2) + s(yp+1/2) + t) – (r(xp+1) + s(yp+1/2) + t) = r

F(M’) = F(M) + r

b) Se foi escolhido o ponto NE:

M’ = (xp+2 , yp+3/2)

F(M’) = r(xp+2) + s(yp+3/2) + t

F(M’) – F(M) = (r(xp+2) + s(yp+3/2) + t) – (r(xp+1) + s(yp+1/2) + t) = r + s

F(M’) = F(M) + r + s

Incremento ∆E∆y

Incremento ∆NE∆y - ∆x

 

Algoritmo do ponto médio

Page 145: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 145/352

• Em cada iteração é escolhido um dos dois pontos(NE,E).

• A escolha é baseada no sinal do valor da função Fno ponto médio M.

• O valor da função F(M) é calculado de formaincremental: – depois de um dos pontos ter sido escolhido:

• F(M’) = F(M) + (∆E ou ∆NE)

 

Algoritmo do ponto médio

Page 146: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 146/352

• Inicialização do algoritmo:P = (x

0

, y0

) M = (x0

+1, y0

+1/2)

F(M) = r(x0+1) + s(y0+1/2) + t =

rx0 + sy0 + t + r +s1/2 =

F(x0,y0) + r + s1/2 =

r + s1/2• Para eliminar a fracção, redefine-se a função:

F(x,y) = 2(rx + sy + t)

Como o algoritmo se baseia no sinal da função F, esta

alteração não afecta o algoritmo.

zero

 

Algoritmo do ponto médio

Page 147: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 147/352

 

Algoritmo do ponto médio

Page 148: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 148/352

 

Algoritmo do ponto médio

Page 149: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 149/352

• Exercício: – Generalizar o algoritmo anterior para outros declives.

• Considerações suplementares: – O sentido P0 P1 deve escolher os mesmos pontos que

o sentido P1 P0; – Conversão por varrimento de rectângulos ou polígonos:

• os vértices não podem ser desenhados mais que uma vez.

 

Algoritmo do ponto médio

C id õ l

Page 150: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 150/352

• Considerações suplementares: – Início do desenho na fronteira de uma região de corte.

 

Algoritmo do ponto médio

C id õ l

Page 151: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 151/352

• Considerações suplementares: – Variação da intensidade de luz segundo o declive da recta.

 

Page 152: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 152/352

8 - Computação Gráfica

Algoritmos de processamento de imagem em 2DConversão por varrimento de círculos

César Toscano Março/2008 

 

Conversão por varrimento de círculosEquação de um círculo centrado na origem:

Page 153: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 153/352

• Equação de um círculo centrado na origem:

x2 + y2 = R2

• Atenção, o círculo é uma figura simétrica, composta por oito arcos simétricos.Sabendo desenhar um dos arcos, os outros podem ser desenhados por simetria.

 

Conversão por varrimento de círculos

Page 154: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 154/352

R

Incrementar x de 0 até R,calculando as diversas ordenadas:

y = ±(√R2-x2)

 

Conversão por varrimento de círculos

O t ét d i t d θ d 0º 90º

Page 155: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 155/352

• Outro método: incrementar de θ de 0º a 90º,calculando os pontos (R cosθ, R senθ).

• Este algoritmo evita as falhas quando x estápróximo de R mas é tão ineficiente quanto oanterior.

 

Algoritmo do ponto médio

Adaptação do algoritmo de Bresenham

Page 156: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 156/352

• Adaptação do algoritmo de Bresenham.• Considere-se:

 – um círculo centrado na origem dos eixos; – o seu segundo octante: x = 0 até x = y = R / √2.

P = (xp,yp) ponto escolhido previamenteObjectivo: escolher o ponto E ou SE, consoante a sua

proximidade à curva.P

SE

E

M --- --- ME

--- MSE

 

Algoritmo do ponto médio

• Formulação:

Page 157: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 157/352

• Formulação:F(x,y) = x2 + y2 - R2

= 0 para qualquer ponto sobre a linha;> 0 para pontos fora do círculo;< 0 para pontos dentro do círculo.

• Se o ponto M estiver no exterior do círculo, o pontoSE está mais próximo da curva.

• De forma inversa, se o ponto M estiver no interior docírculo, o ponto E está mais próximo da curva.

F(M) = (xp+1)2 + (yp-1/2)2 - R2

 

Algoritmo do ponto médio

a) Se F(M) 0 o ponto E é escolhido

Page 158: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 158/352

a) Se F(M) < 0, o ponto E é escolhido:M’ = (x

p+2, y

p-1/2)

F(M’) = (xp+2)2 + (yp-1/2)2 - R2

F(M’) – F(M) = [(xp+2)2 + (yp-1/2)2 - R2] –[(xp+1)2 + (yp-1/2)2 - R2] =

= 2xp + 3

F(M’) = F(M) + 2xp + 3 ∆E

 

Algoritmo do ponto médio

b) Se F(M) > 0 o ponto SE é escolhido:

Page 159: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 159/352

b) Se F(M) > 0, o ponto SE é escolhido:M’ = (xp+2, yp-3/2)

F(M’) = (xp+2)2 + (yp-3/2)2 - R2

F(M’) – F(M) = [(xp+2)2 + (yp-3/2)2 - R2] –[(xp+1)2 + (yp-1/2)2 - R2] =

= 2xp – 2yp + 5

F(M’) = F(M) + 2xp – 2yp + 5

De notar que ∆E e ∆SE não são constantes, mas variam aolongo da curva (o que é natural já que o declive da tangenteà curva também varia de ponto para ponto).

∆SE

 

Algoritmo do ponto médio• Inicialização do algoritmo:

Page 160: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 160/352

Inicialização do algoritmo:P = (0, R) M = (1, R-1/2)F(M) = 1 + (R-1/2)2 - R2 = 5/4 – R

 

Algoritmo do ponto médio

P f li i f ã

Page 161: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 161/352

• Por forma a eliminar a fracção e,

consequentemente, a aritmética em vírgulaflutuante: – G(M) = F(M) – 1/4 = 1 – R – Substituír todas as ocorrências de F(M) por G(M) + 1/4

 – A comparação com zero, passa agora a ser com (-1/4).No entanto, como os incrementos ∆E e ∆SE são inteirospositivos, a comparação pode continuar a ser feita comzero.

 

Algoritmo do ponto médio

Page 162: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 162/352

 

Algoritmo do ponto médio

Page 163: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 163/352

 

Algoritmo do ponto médio

Page 164: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 164/352

 

Page 165: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 165/352

9 - Computação Gráfica e Multimédia

Algoritmos de processamento de imagem em 2D“Clipping”

César Toscano Março/2008 

 

Clipping

• Implementações:

Page 166: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 166/352

• Implementações: –Clipping feito de forma analítica; –Clipping feito durante a conversão por varrimento daprimitiva gráfica;

 –Clipping feito através de um buffer temporário (canvas):

As primitivas gráficas são inicialmente colocadas noprimeiro buffer, sendo feita uma cópia posterior dos pixeisrelativos à área de recorte.

Cópiade

pixeis

 

Clipping

• Recorte de segmentos de recta

Page 167: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 167/352

• Recorte de segmentos de recta – Área de recorte rectangular; – Alguns exemplos:

 – Os pontos interiores à área são os seguintes:

• xmin <= x <= xmax• ymin <= y <= ymax

D

CB

A

F

E H

G

J

Ixmin xmax

ymin

ymax

 

Clipping

• Clipping analítico:

Page 168: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 168/352

• Clipping analítico:1. Extremos interiores à área (p.e. AB) o segmento de

recta é aceite de forma trivial;2. Um extremo interior e o outro extremo exterior (p.e. CD) o segmento intersecta a área de recorte, o quesignifica que se tem de calcular o ponto de intersecção;

3. Ambos os extremos são exteriores à área

o segmentopode ou não intersectar a área (p.e. EF e GH).

 

Clipping• Considere-se a equação paramétrica para segmentos de recta:

( )

Page 169: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 169/352

x = x0 + t(x1-x0)y = y0 + t(y1-y0)t ε [0,1]

• Para verificar se um dado ponto (x,y) é ponto de intersecção entre o segmento de recta ecada uma das linhas laterais da área de recorte: – Recta:

x = x0 + t1(x1-x0)y = y0 + t1(y1-y0)

 – Aresta inferior:x = x2 + t2(x3-x2)

y = y2

x0 + t1(x1-x0) = x2 + t2(x3-x2)y0 + t1(y1-y0) = y2

• Resolvendo as duas equações em relação a t1 e t2, caso t1 ε [0,1] e t2 ε [0,1] é porque existeum ponto de intersecção.

• Para verificar a intersecção da recta com cada uma das arestas é necessário efectuar oscálculos para cada uma das quatro arestas.

(x1,y1)

(x0,y0)

(x2,y3)

(x2,y2)

(x3,y3)

(x3,y2)

 

Algoritmo de Cohen-Sutherland1. Verificar se o segmento de recta é aceite de forma trivial.

Page 170: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 170/352

2. Para os casos não triviais é feita uma análise de regiões:Se ambos os pontos extremos estiverem na mesma região o segmento de

recta é rejeitado (de forma trivial).

3. Se o segmento de recta não é aceite de forma trivial e tb/ não érejeitado de forma trivial o segmento é dividido em duas partes, deforma que uma das partes passa a ser rejeitada de forma trivial.

4. Através de sucessivas iterações, o algoritmo chega a um ponto em que

o que resta do segmento ou é trivialmente aceite ou é trivialmenterejeitado.

Região superior

Região inferior

Regiãoà

esquerda

Regiãoà

direita

 

Algoritmo de Cohen-Sutherland

O algoritmo é particularmente eficiente nos seguintes casos:

Page 171: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 171/352

O algoritmo é particularmente eficiente nos seguintes casos:• Grande rectângulo de corte:

• Grande parte das primitivas gráficas são abrangidas pelo rectângulo decorte;• As primitivas gráficas são quase todas aceites de forma trivial.

• Pequeno rectângulo de corte:• Grande parte das primitivas encontram-se fora do rectângulo de corte;• As primitivas gráficas são quase todas rejeitadas de forma trivial.

 

Algoritmo de Cohen-Sutherland

• Descrição pormenorizada do algoritmo:

Page 172: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 172/352

Descrição pormenorizada do algoritmo: – A cada uma das regiões é atribuído um código de quatro

bits:

 – As regiões são as seguintes: zona de cima, zona debaixo, zona à direita, zona à esquerda.

1000

0100

0001 0010

1001

0101

0000

1010

0110

y>ymax

y<ymin

x>xmax

x<xmin

 

Algoritmo de Cohen-Sutherland

• Para o segmento de recta definido pelos pontos (x0,y0)

Page 173: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 173/352

g p p ( 0,y0)(x1,y1) são feitos os seguintes cálculos:

1. Cálculo do código de região em que cada um dos pontos extremosse situa;

2. Se ambos os pontos tém o código 0000 a linha é aceite de formatrivial;

3. Se a operação “bitwise and” entre ambos os códigos for <> zero alinha é rejeitada de forma trivial;

4. Divide-se o segmento em duas partes:1. Escolhe-se o ponto cujo código de região é <> 0;2. Para o ponto escolhido, calcula-se o ponto de intersecção com cada

uma das arestas laterais (pela mesma ordem em que se definiram asregiões no código de região):• Primeiro, verifica-se se o ponto de intersecção se situa na aresta superior, depois se

encontra na aresta inferior, depois se está na aresta direita e, finalmente, se se encontrana aresta esquerda.

 

Algoritmo de Cohen-Sutherland

• Como é que se verifica se existe intersecção entre o

Page 174: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 174/352

Como é que se verifica se existe intersecção entre osegmento e uma determinada aresta? – Verificando se o bit do código de região correspondente à

aresta é 1.

 

Algoritmo de Cohen-Sutherland

1º exemplo: DBC

Page 175: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 175/352

p

i. O segmento AD nem é aceite ou rejeitado de formatrivial:

 – Código de A == 0000 – Código de D == 1001

ii. Como o ponto A é interior, é escolhido o ponto D.O código de D é 1001 e como o 1º bit é 1, isto significa que

o segmento de recta intersecta a aresta superior, sendoassim B o novo ponto extremo do segmento.

O algoritmo recomeça novamente e aceita de forma trivial a

recta BA.

B

A

C

 

Algoritmo de Cohen-Sutherland

2º exemplo: IH

Page 176: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 176/352

2 exemplo:

i. O segmento EI não é aceite ou rejeitado de forma trivial.ii. Como o código de região do ponto E é <> 0 e o seu 1º

bit a 1 é o 2º, isto significa que o ponto de intersecção é

com a aresta inferior. O ponto F é assim o novo pontoextremo.

iii. O algoritmo recomeça ...

E

G

I

F

 

Algoritmo de Cohen-Sutherland

Page 177: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 177/352

 

Algoritmo de Cohen-Sutherland

Page 178: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 178/352

 

Algoritmo de Liang-Barsky

Page 179: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 179/352

 

Algoritmo de Liang-Barsky

Page 180: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 180/352

 

Clipping de polígonos

Page 181: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 181/352

• O recorte de um polígono envolve vários casos: – Podem desaparecer arestas; – Podem aparecer novas arestas; – Uma aresta pode dar origem a várias arestas;

 – Um polígono pode dar origem a vários polígonos.

 

Algoritmo de Sutherland-Hodgam

• Estratégia “dividir para conquistar”.

Page 182: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 182/352

g p q• Efectuar a operação de recorte para cada uma das

arestas do polígono.• O polígono é definido por uma lista de vértices:

 – v0, v1, v2, ..., vn

• Para cada passo (recorte feito por uma das arestas)o algoritmo tem a seguinte entrada/saída:

• O algoritmo começa com o vértice vn.

iteraçãoLista devértices

Nova listade vértices

 

Algoritmo de Sutherland-Hodgam

Page 183: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 183/352

 

Algoritmo de Sutherland-Hodgam• Em cada passo, podem ser adicionados novos vértices (ou retirados

é ti i t t ) à li t d é ti

Page 184: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 184/352

vértices existentes) à lista de vértices.• Pontos a adicionar à lista de saída (s é o vértice já processado na

iteração anterior do algoritmo):1. Vértice p;2. Ponto i;3. Nenhum ponto;4. Ponto i e vértice p.

 

Algoritmo de Sutherland-Hodgam• Exemplo:

– Lista de entrada = { P P P }

P2

Área de

Page 185: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 185/352

  Lista de entrada = { P1, P2, P3 } – Lista de saída = { }

• O algoritmo começa com o último vértice(o vértice s corresponde a P3).• Desenvolvimento do 1º passo (recorte com a aresta A1):

 – Aresta P3P1, P3 é interior e P1 é exterior:• O ponto i é adicionado à lista de saída.

 – Aresta P1P2, P1 é exterior e P2 é interior:

• Os pontos j e P2 são adicionados à lista de saída. – Aresta P2P3, P2 e P3 são interiores:

• P3 é adicionado à lista de saída.

 – Lista de vértices de saída = { i, j, P2, P3}Esta lista constitui de seguida o input do 2º passo do algoritmo, que poderá

envolver, por exemplo, a aresta superior da área de recorte.• O algoritmo pode ser generalizado para áreas de recorte poligonais (não

rectangulares).

P1P3

Área derecorte

P2

P1 P3

A1

i

 j

 

Algoritmo de Sutherland-Hodgam

Page 186: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 186/352

 

Page 187: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 187/352

10 - Computação Gráfica eMultimédia

Algoritmos de processamento de imagem em 2D“Antialiasing”

César Toscano Março/2008 

 

Antialiasing

• Aplicação de técnicas que tem como finalidade a

Page 188: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 188/352

redução ou eliminação do fenómeno de “aliasing”

(efeito de escada).

 

Antialiasing

• Primeira técnica Amostragem não ponderada da

Page 189: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 189/352

área (“unweighted area sampling”):

 – Um segmento de recta de espessura igual a um pixelocupa uma área finita do dispositivo de visualização.

 

Antialiasing

• Um segmento de recta deve ser encarado como sendo umtâ l d t i d T d i i

Page 190: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 190/352

rectângulo com determinada espessura. Todos os pixeis

cujas áreas são abrangidas pela primitiva gráfica devemsofrer alteração na intensidade de luz que lhes é aplicada.• A intensidade de luz a aplicar sobre um pixel deve ser

directamente proporcional à área de intersecção entre a suaárea e a da primitiva gráfica. Por exemplo, num monitor a

preto e branco com níveis intermédios de cinzento, deve seraplicada: – A cor preta a todos os pixeis cujas áreas são totalmente abrangidas

pela primitiva; – A cor branca a todos os pixeis não abrangidos pela primitiva;

 – Níveis intermédios de cinzento para os outros casos.

 

Antialiasing

• Propriedades desta técnica:

Page 191: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 191/352

1. A intensidade de luz de um pixel é inversamente proporcional à

distância entre o centro do pixel e a primitiva:

 – Quanto mais longe do centro a primitiva se encontra, menor é a área deintersecção.

2. A primitiva gráfica não influencia pixeis cujas áreas não sãointersectadas pela primitiva.

3. Áreas de intersecção iguais contribuem de forma igual para aintensidade de luz do pixel (atenção, áreas iguais não significam distâncias iguais ao

centro):

Área daprimitiva

 

Antialiasing

Page 192: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 192/352

 

Antialiasing

• Segunda técnica: amostragem ponderada da área

Page 193: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 193/352

(“weighted area sampling”).

• A 3ª propriedade é alterada, sendo mantidas asduas primeiras: – Áreas iguais podem contribuir de forma diferente para a

intensidade de luz do pixel;

 – Áreas que se encontram mais perto do centro do pixel tempeso maior que áreas iguais, mas mais distanciadas docentro.

 

Antialiasing• Analise-se de novo a 1ª técnica. Defina-

se uma função W(x,y) da seguinte

Page 194: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 194/352

forma: – A função apresenta um valor constante

ao longo de toda a área do pixel. – A secção vertical pode ser utilizada como

parâmetro de controlo da intensidade deluz a aplicar ao pixel.

 – Quanto maior for esse sub-volume, maioré a intensidade de luz a aplicar.

 – Se o volume total da caixa for igual a um:

• I = Imax Ws

• Imax intensidade máximaque pode ser aplicada

• Ws sub-volume relativo àárea de intersecção

 

Antialiasing• Aplique-se a mesma técnica à

amostragem ponderada.

Page 195: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 195/352

• Por forma a satisfazer a 3ª

propriedade, introduz-se a seguintealteração: – A área relativa a cada pixel passa a

ser caracterizada por uma áreacircular e não rectangular.

 – As diversas áreas circularesintersectam-se mutuamente.

• Quanto mais perto do centro se

encontra a primitiva, maior é o sub-volume do cone.• Áreas iguais distanciadas do centro

de forma diferente originam sub-volumes diferentes.

• O algoritmo de Gupta-Sproulassenta neste princípio.

 

Antialiasing

• Algoritmo de Gupta-Sproul para conversão

Page 196: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 196/352

Sproul para conversão

por varrimento desegmento de recta.

 

Page 197: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 197/352

11 - Multimédia

Áudio

César Toscano Junho/2008 

Material extraído de:

“Multimédia e Tecnologias Interactivas”, Nuno Ribeiro, 2ª Edição,FCA Editora de Informática, 2007.

 

Representação de áudio digital

• Obtém-se, principalmente, por digitalização do áudioanalógico

Page 198: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 198/352

analógico.

• Constituído por uma sequência de amostras, quequantificam a amplitude do som em cada instante detempo.

• Factores que determinam a qualidade do áudio digital: – Taxa de amostragem;

 – Dimensão da amostra (nr. de bits usados para codificar cadaamostra);

 – Nr. de canais (1, 2, 4, 16, 32 …); – Tipo de intercalação; – Método de codificação (com/sem compressão de dados).

 

Representação de áudio digital – Taxa de amostragem

• Nr. de vezes por segundo que se retém uma amostra do áudioanalógico;

Page 199: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 199/352

• Quanto mais alta a taxa de amostragem, melhor a qualidade do áudio

digital obtido;• A taxa de amostragem depende do tipo de áudio que se está a

digitalizar - deve ser igual ou superior ao dobro da maior frequênciaexistente no sinal contínuo original (teorema de Nyquist);

• Sendo o ouvido humano sensível a frequências entre 20Hz e 20KHz,a frequência de amostragem deve ser maior do que 40KHz.

• Exemplos: Taxa de amostragem Largura de banda Descrição

44.1KHz(CD-DA)

20Hz-20KHz Audição humana

22.05KHz 20Hz-10KHz ½ da largura de bandaanterior

11.025KHz 20Hz-5KHz ½ da largura de bandaanterior

• Atenção: as frequências que igualam e excedem a frequência de Nyquist devem ser fortementeatenuadas para evitar a introdução de ruído (gama entre freq. máxima utilizável e a freq. deNyquist).

 

Representação de áudio digital – Taxa de amostragem

• Gamas de frequências de sons comuns:

Som / instrumento Gama de frequências Frequência do quarto

Page 200: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 200/352

q q qharmónico

Piano 27.01Hz - 4.186KHz 12.558 KHz

Flauta 261.63Hz - 3.951KHz 11.853 KHz

Guitarra eléctrica 82.41Hz - 1.328KHz 3.984 KHz

Órgão de tubos 32.7Hz - 8.372KHz 25.116 KHz

Trompete 164.81Hz - 0.932KHz 2.797 KHz

Voz humana 50Hz - 0.8KHz 2.4 KHz

• Atenção: cada uma destes sons é constituído por várias formas de onda (harmónicos) – qualidadetonal: a mostragem do som deve incluir os principais harmónicos.

• Exercício: tendo em conta a tabela anterior, qual deverá ser a frequência de amostragem a usar paracada tipo de som?

• Os sinais de percussão atingem frequências transitórias até aos 20 KHz.• Taxa de amostragem:

• no CD-DA: 44.1KHz;• na telefonia digital (redes telefónicas): 8KHz (para largura de banda 20Hz – 3.4KHz).

 

Representação de áudio digital – Dimensão da amostra

• Nr. de bits utilizado para codificar cada amostra.E t f t t lid d d á di di it l btid

Page 201: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 201/352

• Este factor aumenta a qualidade do áudio digital obtido na

medida em que determina a gama dinâmica disponível(dynamic range) e o rácio sinal-ruído;• Gama dinâmica: diferença entre o sinal mais silencioso

(amplitude sonora mínima) e o sinal mais forte (amplitudesonora máxima) que pode ser codificada;

• Esquemas principais de quantificação das amostras: – Linear: utiliza intervalos de quantificação com larguras idênticas; – Não linear (p.e., logarítmica):

• utiliza intervalos de quantificação com espaçamentos irregulares;• produz áudio digital com melhor qualidade que a quantificação linear.

 

Representação de áudio digital – Dimensão da amostra

• Decibel – medida do nível de pressão sonora, equivale a 10-12 Watt/m2 de potênciaacústica.

Page 202: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 202/352

Dimensão da amostra digital Nível da pressão sonora Nível da pressão sonora para sonscomuns (percepção humana)

140 dB Limiar da dor

20 bits 120 dB Limiar da sensação

16 bits 96 dB Ruído do metropolitano

90 dB Volume máximo de uma aparelhagemdoméstica

12 bits 72 dB Ruído de uma fábrica

10 bits 60 dB Conversação

8 bits 50 dB Ruído de um restaurante

35 dB Ruído de um escritório

0 dB Limiar de audição

• 0 db: identificam o limite mínimo abaixo do qual os sons deixam de ser ouvidos (pelo serhumano).

• Se usarmos 16 bits para codificar uma amostra com amplitude máx. de 1 Volt, a gama dinâmica é de96 dB.

 

Representação de áudio digital – Dimensão da amostra

• Rácio sinal-ruído: – Existe uma diferença quantificável entre o valor atribuído ao sinal digital e o

valor de amplitude do sinal analógico real;

Page 203: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 203/352

valor de amplitude do sinal analógico real; – Este erro de quantificação distorce o sinal original e é o responsável pela

introdução de ruído; – A potência desta distorção é determinada pela largura dos intervalos de

quantificação da amplitude; – O rácio mede-se em decibéis e é igual à divisão entre:

• valor máximo da amplitude do sinal;• energia do sinal de erro ao longo de um intervalo de amostragem;• Na quantificação linear (N == nr de bits por amostra), este rácio é igual a (6,02 x

N + 1,76) dB.Dimensão da amostra Rácio sinal-ruído Qualidade sonora equivalente

8 bits 49.88 dB Telefonia

10 bits 61.92 dB Rádio AM

12 bits 73.96 dB Rádio FM

16 bits 98.04 dB CD-DA

 

Representação de áudio digital

• Qualidade associada a alguns dos atributos de digitalização de áudio:

Page 204: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 204/352

Atributos Qualidade Espaço consumido / segundo

(bytes)

Espaço consumido / minuto

(bytes)

11025 Hz, 8 bits estéreo Razoável em estéreo 22050 1323000

11025 Hz, 16 bits estéreo Razoável em estéreo commenos ruído

44100 2646000

22050 Hz, 8 bits estéreo Boa em estéreo 44100 264600

22050 Hz, 16 bits estéreo Muito boa em estéreo, menosruído

88200 5292000

44100 Hz, 8 bits estéreo Elevada em estéreo 88200 5292000

44100 Hz, 16 bits estéreo Excelente em estéreo (CD),sem ruído

176400 10584000

 

Representação de áudio digital – Métodos decompressão/codificação

• PCM - Pulse Code Modulation: – Sequência de amostras descomprimidas;– Constitui o formato de referência para os métodos de compressão;

Page 205: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 205/352

 – Constitui o formato de referência para os métodos de compressão;• ADPCM - Adaptive Delta Pulse Code Modulation

 – Reduz o débito binário do PCM através da codificação das diferenças entre osvalores das amostras;

 – Cada amostra é substituída por um único bit que indica o sinal da diferença entre elaprópria e a amostra anterior;

 – Na descodificação, as amostras são reconstituídas processando-se a diferença eadicionando essa diferença à última amostra descodificada;

 – Este último valor indexa uma tabela de factores de escala que determina o valor realda diferença;

 – Os factores de escala dependem das amostras originais e são determinados nacodificação; – Foi utilizado no CD-I (Compact Disc-Interactive); os formatos AIFF e WAVE

(Windows) usam o ADPCM; – O rácio de compressão varia entre 2:1 a 4:1.

• MP3 – MPEG 1 Layer III – Método de compressão com perdas por codificação perceptiva: baseia-se na teoria

psicoacústica; é eliminada a informação auditiva irrelevante ou redundante relativaaquilo que o ouvido humano não é capaz de detectar;

 – Utiliza a transformada MDCT (Modified Discrete Cosine Transform). – Permite obter taxa de compressão de 1:12 sem perda aparente de qualidade.

 

Formatos de áudio digitalFormato Taxa de

amostragem(KHz)

Dimensão daamostra

Método dequantificação

Canais Débitobinário porcanal(Kbit/s)

Método(codec)

Qualidade

Page 206: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 206/352

• Formatos de alto débito: para registos musicais de alta fidelidade;• Formatos de baixo débito (para aplicações multimédia ou telefonia digital):

 – AIFF (Audio Interchange File Format) – MacOS da Apple – AU (Audio) – UNIX

 – WAVE – MS Windows – MP3, G.271, A-law/U-law

• Os formatos AIFF, AU e Wave suportam várias taxas de amostragem e dimensões de amostra.

( )

CD-DA

(CompactDisc-DigitalAudio)

44.1 16 Linear 2 705 PCM Elevada

DAT (DigitalAudio Tape)

48 16 Linear 2 768 PCM Elevada

G.721 8 8 Linear 1 32 ADPCM Média

A-LAW/U-LAW

8 8 Não linear(logarítmico)

1 64 PCM Telefónica

 

Operações de áudio digital

• ArmazenamentoR ã

Page 207: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 207/352

• Recuperação

• Edição• Filtragem e aplicação de efeitos• Conversão

 

Edição de áudio digital

• Cortar, copiar, inserir (cutting, copying, inserting)segmentos de audio;

Page 208: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 208/352

segmentos de audio;

• Aplicação de técnicas de filtragem digital: – Atraso (adição de ecos ou reverberação) – Equalização (enfatizar, reduzir ou balancear várias bandas de

frequências) – Normalização (escalar um segmento para que o seu valor de pico

não ultrapasse um valor máximo)

 – Redução de ruído (him ou hum) – Compressão ou expansão temporal (aumentar ou diminuir a duração

temporal sem alterar a tonalidade, pitch ) – Alteração da tonalidade sem modificar a duração (pitch shifting ) – Conversão para estereofónico

 – Aplicação de ambientes acústicos.

 

Algumas ferramentas para manuseamento de áudio digital

 – EAC - Exact Audio Copy

 – Monkey’s Audio (geração de ficheiros de formato APE)

Page 209: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 209/352

y (g ç ) – Flac - Free Lossless Audio Codec (geração de ficheiros de formato

flac) – Medieval CUE Splitter (para manusear ficheiros com o índice de um

álbum de música)

 – Lame MP3 Encoder (para comprimir/descomprimir áudio segundo oMP3)

 – Para autoria/processamento de áudio digital:• Audacity, Goldwave, WaveLab ,…

 – Foobar 2000 (leitor muito bom de áudio digital com suporte para osformatos mp3, ape e flac; suporta conversões de formatos)

 – OtsTurntables Free (virtual set of professional mixing turntables withMP3 support).

 

Page 210: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 210/352

12 - Multimédia

Vídeo

César Toscano Junho/2008 

Material extraído de:

“Multimédia e Tecnologias Interactivas”, Nuno Ribeiro, 2ª Edição,FCA Editora de Informática, 2007.

 

Vídeo analógico• Sinal eléctrico que varia no tempo; a informação visual é codificada

através de alterações na amplitude desse sinal (em termos deluminância ou crominância).

Page 211: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 211/352

luminância ou crominância).• Estruturado em tramas (ou fotogramas) constituídas por linhas de

varrimento horizontal.• Frame rate: nr de tramas / segundo.• Scan rate: nr de linhas / segundo:

 – frame rate x nr de linhas de varrimento horizontal• Aspect ratio (razão de aspecto): razão entre a largura e a altura da

imagem.

• Taxa de refrescamento: frequência com que o ecrã é actualizado comnova informação.• Entrelaçamento (interlacing): esquema de varrimento em que linhas

ímpares e pares são apresentadas em duas fases distintas.• Rácio sinal-ruído: quociente entre a potência do sinal e a potência do

ruído; mede a qualidade do sinal de vídeo juntamente com a resoluçãoda imagem.

 

Vídeo analógico

• Tipos de sinais:Vídeo composto (composite video):

Page 212: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 212/352

 – Vídeo composto (composite video):

• os sinais de luminância e crominância estão combinados numúnico sinal eléctrico.

 – Vídeo por componentes (component video):• a luminância e a crominância são representados por sinais

distintos;

• Melhor qualidade mas maior complexidade electrónica;• Principais formas:

 – YUV: um sinal de luminância (Y) e dois de crominância (U e V); – S-Video (separated video): um sinal de luminância e outro de crominância; – Y/C Video: idem; – RGB: um componente para cada cor R, G e B.

 

Vídeo analógico• Formatos de vídeo composto:

 – PAL (Phase Alternation Line): televisão na Europa Ocidental e outros

Page 213: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 213/352

países; a informação do brilho, da cor e da sincronização é codificada num

único sinal; – SECAM (Séquentiel Couleur avec Mémoire): televisão em França, Europa

Oriental, Rússia, Médio Oriente e Caraíbas; a codificação de cor é diferentedo PAL;

 – NTSC (National Television Systems Committee): televisão nos EUA,América Central e Japão; a codificação de cor é diferente do PAL.

• Formatos de vídeo por componentes: – YUV 525/60: versão do NTSC; – YUV 625/50: versões do PAL e SECAM; – RGB (Red, Green, Blue): VGA, SVGA, XVGA, … – HDTV analógico (Analog High Definition Television):

• HD-MAC (Europa): 1250 linhas, 50 Hz, aspect ratio 16:9• Hi-Vision (Japão).

 

Vídeo analógico

Page 214: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 214/352

 

Vídeo analógico

• Fases de preparação de clips de vídeo analógico:Pré produção: escrita do guião (script) e preparação das

Page 215: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 215/352

 – Pré-produção: escrita do guião (script) e preparação das

cenas a filmar; – Produção: filmagens do material de vídeo; – Pós-produção: edição do material de vídeo filmado

(processamento, composição, alteração).

 

Digitalização de vídeo analógico• O vídeo digital é constituído por sequências de tramas com

imagens digitais. As tramas podem obter-se por síntese( õ d d i d i ã ) di i li ã

Page 216: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 216/352

(operações de rendering de animação) ou por digitalizaçãode vídeo analógico.

• Digitalização de vídeo analógico: – Taxa de amostragem:

• Nr. de amostras do vídeo analógico que se captam/armazenam em cadasegundo;

• Deve ser superior ao limite de Nyquist (dobro da maior frequênciaexistente no sinal) e ser múltiplo inteiro da taxa de refrescamento doecrã.

 – Dimensão das amostras:• Nr. de bits utilizado na representação de cada amostra (mapeamento da

gama contínua de valores do sinal analógica para os valores discretosda amostra);

• A quantificação é linear.

 

Digitalização de vídeo analógico• Digitalização de vídeo na norma PAL:

 – Das 625 linhas no sinal analógico, 50 são usadas no teletexto.25 fps (entrelaçamento)

Page 217: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 217/352

 – 25 fps (entrelaçamento)

 – Imagem digital:• 575 linhas• 575 x 4:3766,7 pixeis / linha• 576 linhas e 768 pixeis por linha aspect ratio 4:3• 3 bytes por pixel (24 bits de cor)• Para cada trama são necessários:

 – 768 x 576 x 3 = 1,327 Mbytes

• Um segundo de vídeo PAL: – 1,327MB x 25 fps 33,175 MB

• No modelo de cor YUV, cada pixel consome 2 bytes, para 1 segundo devídeo PAL temos: – 768 x 576 x 2 x 25 fps = 22 MB

• PAL Integral: vídeo digital obtido do PAL (analógico) com768 x 576 pixeis por imagem.

 

Digitalização de vídeo analógico

• Digitalização de vídeo na norma NTSC:– 525 linhas em cada trama (sinal analógico)

Page 218: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 218/352

  525 linhas em cada trama (sinal analógico).

 – 30 fps (entrelaçamento). – Imagem digital:

• 640 linhas;

• 480 pixeis por linha.

 – Exercício: calcular o espaço necessário para armazenarum segundo de vídeo digital.

 

Vídeo digital - Formatos de representação

• Formatos de alto débito– HDR – High Data Rate;

Page 219: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 219/352

  HDR High Data Rate;

 – Grau de compressão muito baixo ou inexistente; – Beneficiam a qualidade de imagem e a facilidade do

processamento. – Muito usados na pós-produção profissional.

• Formatos de baixo débito – LDR – Low Data Rate; – Envolvem compressão dos dados; – Destinam-se às aplicações multimédia interactivas e à

transmissão de vídeo em redes de comunicação (vídeoconferência, Internet).

 

Vídeo digital - Formatos de alto débito• Digital Component Video (ITU-R BT.601 ou CCIR-601)

 – Vídeo digital por componentes, define uma família de formatos; obtém-se através daamostragem do vídeo por componentes (taxa de amostragem de 3,375 MHz, tantopara NTSC YUV 525/60 como para PAL YUV 625/50; dimensão da amostra em cada

Page 220: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 220/352

para NTSC YUV 525/60 como para PAL YUV 625/50; dimensão da amostra em cadacomponente é de 8 ou 10 bits);

 – A notação m:n:l indica o formato específico, através dos factores de multiplicação dataxa de amostragem base para os três componentes YUV.

 – 4:4:4 é o data rate mais elevado, 4:2:2 é mais usado na pós-produção de vídeodigital, 4:1:1 é adequado para a conversão final de vídeo digital para vídeo analógico.

• Digital Composite Video (vídeo digital composto) – Preferido pelos estúdios de vídeo profissionais; – Resulta da digitalização de vídeo analógico composto (taxa de amostragem para PAL

é de 4 x 4,43 MHz, para NTSC é de 4 x 3,58 MHz).

• CIF (Common Intermediate Format) e QCIF (Quarter CIF) – Para utilização em vídeo conferência (aprovados pelo CCITT). – Obtido por amostragem de um sinal YUV.

• Digital HDTV – Classe de normas internacionais de televisão (DTV Digital Television, DVB Digital

Video Broadcasting (Europa), ATSC Advanced Television Systems Committee (USA),ISBD Integrate Services Digital Broadcasting (Japão));

 – O sinal é comprimido segundo a norma de compressão MPEG-2 (Motion PicturesExperts Group).

 

Vídeo digital - Formatos de alto débito

Page 221: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 221/352

 

Vídeo digital - Formatos de baixo débito

• Codec – compressor/descompressor de vídeodigital.

Page 222: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 222/352

• Implementado em software ou hardware; areprodução de vídeo full-motion com 24 bits deprofundidade em tempo real exige que o codecseja implementado em hardware.

• Os codecs são classificados nas seguintesdimensões:

 – Compressão sem perdas (lossless) versus compressãocom perdas (lossy);

 – Compressão espacial (intraframe) versus compressãotemporal (interframe).

 

Vídeo digital - Formatos de baixo débito• Compressão sem perdas:

 – Processo de compressão que preserva as tramas originais; a sequência devídeo não perde informação depois da compressão e correspondented ã

Page 223: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 223/352

descompressão;

 – Método RLE: zonas contínuas da mesma cor são eliminadas; – Processo mais usado em imagens geradas por modelação gráfica.

• Compressão com perdas: – É retirada informação à imagem sem que o utilizador se aperceba da

diferença.• Compressão espacial:

 – Comprime a informação de cada trama da sequência de vídeo.

 – As tramas são codificadas individualmente, só é explorada a redundânciadentro de cada trama de vídeo.

• Compressão temporal: – Comprime a informação por comparação das tramas ao longo do tempo

com a eliminação da correspondente informação redundante (tramassucessivas tendem a ser semelhantes).

 – Utilizam técnicas preditivas: as tramas intermédias são calculadas a partir

de tramas chave codificadas individualmente.

 

Vídeo digital - Formatos de baixo débito

• Formato DV (Digital Video):– Para o mercado de consumo e semi-profissional;

Page 224: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 224/352

  Para o mercado de consumo e semi profissional;

 – Muito usado em câmaras de vídeo digital; – A digitalização recorre ao esquema CCIR 601 4:1:1 e a

compressão é baseada na Transformada Discreta doCoseno;

 – O débito é constante e é de 25 Mbits/s; – As tramas que incluem pouco movimento sofrem

compressão espacial; as outras sofrem compressãotemporal.

 

Vídeo digital - Formatos de baixo débito• Família de formatos MPEG:

 – Para equipamento profissional e DVD-Video; – Codecs que aplicam as técnicas de codificação interframe e transformadas DCT (Discrete Cosine

Transform);

Page 225: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 225/352

 – As normas MPEG também contemplam a codificação de áudio e a combinação de fluxos de áudio

e vídeo. No geral, a reprodução (descompressão) é menos exigente do que a compressão. – MPEG-1:• Data rate de 1Mbit/s com qualidade VHS;• É usado com o formato VideoCD: resolução de 352x288 pixeis e taxa de transferência apropriada para os

leitores de CD-ROM mais simples. – MPEG-2:

• Compressão variável com data rate entre 2 e 15 Mbit/s;• Qualidade de difusão e qualidade HDTV;• Define quatro perfis (escalabilidade e resolução cromática) e quatro níveis de normas (resoluções máximas

das tramas, débito binário máximo, …);

• MP@ML Main Profile At Main Level (débito binário de 15 Mbits/s): combinação mais comum, usado nosfilmes em DVD-Video e na transmissão de televisão digital. – MPEG-4:

• Norma internacional ISSO/IEC 14496;• Destina-se à produção de conteúdos e aplicações multimédia através da utilização de objectos de

informação multimédia - “media objects”). Estes objectos correspondem a informação auditiva, visual eaudiovisual, e podem ter uma natureza sintética ou capturada (digitalizada) do mundo real.

• Suporta interacção com o Utilizador;• Na compressão de vídeo digital, é mais eficiente que o MPEG-2, tendo um débito binário menor (5 a 64 kbps

para aplicações móveis, até 1,5 Mbps para outras aplicações) e maior resistência a erros;• Na compressão de áudio digital, usa-se o codec AAC – Advanced Audio Coding (dobro da qualidade do

MP3, iguais débitos binários e tamanho).• Codec DivX para o vídeo: implementação da parte de compressão de vídeo da norma MPEG-4 (parte 2Advanced Simple Visual Profile) com o codec MP3 para áudio digital.

 – MPEG-7, MPEG-21

 

Vídeo digital - Formatos de baixo débito

• Formato AVI Audio Video Interleaved – Formato genérico de vídeo digital no MS Windows

Page 226: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 226/352

g g

 – Codecs AVI mais usados:• Microsoft Video 1 (compressão lossy e espacial, 8 ou 16 bits de

profundidade);• Microsoft RLE (compressão espacial, 8 bits de profundidade, útil

para imagens geradas em computador com cores uniformes);

• Radius Cinepack (ideal para vídeo com 24 bits de profundidadepara reprodução a partir de CD-ROM);• Intel Indeo R3.1 e R3.2 (semelhante ao anterior);• Intel Video Interactive ou Indeo 4.0 (compressão wavelet, capaz

de atingir resultados superiores ao MPEG);• M-JPEG “Motion JPEG” (comprime individualmente cada frame).

 

Vídeo digital - Formatos de baixo débito

• Formato QuickTime (Apple / MacOS) – Considerado superior ao AVI;

Page 227: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 227/352

 – Suporta uma grande variedade de codecs de vídeo(incluindo os codecs do formato AVI); existem versõesdo QuickTime para Java;

 – Formato de ficheiro escolhido para suportar osconteúdos codificados em MPEG-4.

• Recomendação H.261 – Para vídeo conferência

• Formato RealVideo – Protocolo RTSP (Real Time Streaming Protocol); – Ajusta os débitos binários ao tipo de ligação à rede, os

valores podem variar entre 19 e 105 Kbit/s.

 

Operações de vídeo digital

• Armazenamento

Page 228: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 228/352

• Reprodução• Sincronização• Edição

• Aplicação de efeitos especiais• Conversão (entre os vários

formatos de vídeo)

 

Armazenamento de Vídeo digital• Para reproduzir vídeo em tempo real, o sistema de

ficheiros deve suster a transferência de dados a

Page 229: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 229/352

uma taxa idêntica ao data rate do vídeo.• Formas principais de armazenamento: – Tapes magnéticas

• para os formatos de alto débito;• 60 minutos de vídeo podem ocupar vários terabytes;

• Para material usado com muita frequência (spots publicitários). – Discos magnéticos (rígidos):• Para os formatos de alto débito mas de pouca duração.

 – Discos magnéticos ou ópticos:• Para os formatos de baixo débito;• CD-R, CD-RW, DVD+R, DVD-R, DVD+RW.

 

Reprodução de vídeo digital

• Requer um método de endereçamento das tramas(utilizam-se os códigos temporais e a numeração

Page 230: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 230/352

g p ç

das tramas).• Formatos de baixo débito:

 – Resultam em tramas com comprimentos variáveis, oacesso aleatório requer a existência de pontos deacesso (offsets);

 – Na compressão temporal só algumas das tramas é quesão codificadas de forma independente (tramas chave –key frames); o acesso aleatório às outras tramas requera localização prévia da trama chave mais próxima.

 

Edição de vídeo digital• Operação disponibilizada pelas aplicações de autoria

(authoring), através de interfaces gráficas, ícones e linhast i it i l ê i d íd

Page 231: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 231/352

temporais que permitem manipular sequências de vídeo.• Estando o vídeo armazenado em dispositivos de acesso

aleatório, a manipulação de vídeo apenas exige amovimentação dos correspondentes apontadores.

• Estas aplicações de autoria suportam um grande leque de

efeitos especiais.• Exemplos de aplicações:

 – Adobe Premiére – Adobe AfterEffects

 – Pinnacle Studio

 – Ulead Media Studio

 

Autoria de vídeo digital• Permitem produzir sequências de vídeo, agrupando as

operações em três fases principais:– Aquisição ou digitalização de sequências de vídeo;

Page 232: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 232/352

 – Aquisição ou digitalização de sequências de vídeo;

 – Edição do vídeo digital:• Selecção, corte, aplicação de transições, combinação de áudio,

organização dos clips individuais;• Normalmente, nesta operação não se alteram os clips originais.

 – Pós-produção ou aplicação de efeitos digitais sobre as sequênciasde vídeo:

• Correcções de cor, brilho e contraste;• Aplicação de filtros;• Composição de imagens (sobreposição de tramas de clips diferentes

para obtenção de uma sequência final única);• Adição de legendas, títulos e objectos animados;• A pós-produção podem envolver a alteração dos clips originais e a

adição de novos elementos ou a produção de uma nova sequência devídeo.

 

Autoria de vídeo digital

• Principais fases: – Capturar ou digitalizar clips de vídeo digital e criar os

Page 233: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 233/352

ficheiros correspondentes; – Adicionar os ficheiros ao projecto; – Antever e marcar secções nos clips originais; – Posicionar os clips na linha temporal;

 – Adicionar transições; – Aplicar efeitos especiais e ajustar paletas de cor; – Antever a sequência de vídeo criada; – Gerar a sequência final de vídeo digital;

 

Autoria de vídeo digital – Adobe Premiere

Page 234: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 234/352

 

Autoria de vídeo digital – Adobe Premiere

Page 235: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 235/352

 

Autoria de vídeo digital• Transição:

 – Mistura aplicada sobre dois clips de vídeo; – Permite criar mudança suave entre o final de um clip de vídeo (pista 1) e o

início de outro clip de vídeo (pista 2);

Page 236: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 236/352

início de outro clip de vídeo (pista 2);

 – O corte abrupto é a transição por defeito.

• Exemplos de transições: – Dissolve - a 1ª sequência de vídeo vai desaparecendo à medida que a 2ª

sequência surge no ecrã; – IRIS - a 1ª sequência de vídeo abre-se para revelar a 2ª sequência de

vídeo;

 – 3D Motion - a 2ª sequência de vídeo substitui a 1ª sequência de vídeo noecrã entrando através de um efeito de movimento tridimensional, tal como aabertura de uma porta ou de uma cortina, ou um movimento de rotação;

 – Wipe - a 2ª sequência de vídeo entra no ecrã sobrepondo-se gradualmenteà 1ª sequência de vídeo (por exemplo, entrando a partir do topo, do fundo,da esquerda ou da direita);

 – Slide - a 2ª sequência de vídeo desliza ao entrar no ecrã, sobrepondo-se à1ª sequência de vídeo, ou a 1ª sequência de vídeo desliza para fora do ecrã

revelando a 2ª sequência de vídeo.

 

Autoria de vídeo digital• Exemplos de efeitos especiais:

 – Adjust – Ajustar as características, tais como o brilho, o

Page 237: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 237/352

contraste, os valores de RGB e os níveis das tramas doclip de vídeo seleccionado; – Blur – Manchar as tramas do clip de vídeo seleccionado; – Sharpen – Avivar as tramas do clip de vídeo

seleccionado, realçando os detalhes presentes nasimagens;

 – Perspective – Dotar as tramas do clip de vídeoseleccionado de um aspecto tridimensional;

 – Distort – Distorcer as tramas do clip de vídeoseleccionado, simulando por exemplo o aspectoconferido por espelhos e lentes.

 

Geração de vídeo para aplicações multimédia

• Na geração da sequência de vídeo final, há que responderàs seguintes questões:

Qual deve ser a profundidade de cor (8 24 bits)?

Page 238: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 238/352

 – Qual deve ser a profundidade de cor (8, 24 bits)? – Quais devem ser as dimensões da janela de vídeo e que qualidade

é necessária? – Qual deve ser a qualidade do áudio? – Que quantidade de informação pode ser reproduzida pelo

equipamento final?

 – Quais devem ser as limitações em termos de espaço dearmazenamento para a dimensão final do vídeo resultante?

• Parâmetros de ajuste: – Dimensões das tramas, o frame rate, a profundidade de cor, a

qualidade do áudio, o débito final (data rate), tipo de compressão,

formato do ficheiro.

 

Page 239: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 239/352

13 - Computação GráficaJAVA 3D Tutorial

Part 1

César Toscano Maio/2009 

Material extraído de:“Getting Started with the Java 3D API - A Tutorial for Beginners”, Dennis J Bouvier,https://java3d.dev.java.net/ , Sun Microsystems Inc.

e“Introduction to Computer Graphics: Using Java 2D and 3D”, Frank Klawonn, Springer, 2008

 

Introduction• Before anything can be drawn on the computer screen, a 3D virtual world

of objects must be defined and stored in the computer. The virtual worldmight consist of a building, a city, a larger landscape, etc, but the viewerwill only see a small part of this virtual world (a single room in a building)

Page 240: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 240/352

will only see a small part of this virtual world (a single room in a building).• The viewer can move around in the virtual world and explore it. The

viewer’s position, direction of view, field of view, viewing angle and thedistance he can see in the virtual world must be defined. A 3D clippingregion is defined so that only objects within the region need to beconsidered for rendering.

• Sources of light, their locations and characteristics must be defined

(colour of the light, whether the light shines like a spotlight, etc). With thisinformation it is possible to compute how much light a single objectreceives, whether it is in the shadow or in the bright light.

• Other requirements: – Determining which objects are visible and which objects are hidden by others

within the clipping region. – Adding special effects in the scene (fog, smoke, reflections, etc).

 

Introduction

• The description of a three-dimensional object mustcontain information about its geometry but also

Page 241: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 241/352

properties of its surface (object’s colour or texture,object’s reflection properties, etc).

• Two types of 3D objects must be considered:

 – Objects that do not have existing counterparts in the reallife (computer games, concept cars, future buildings, etc).

 – Detailed measurements of the geometric structure ofobjects are available (from 3D laser scanners).

 

Java 3D API• Available at https://java3d.dev.java.net/ • It is a hierarchy of Java classes that serve as the interface

to a 3D graphics and sound rendering system.

Page 242: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 242/352

• The programmer works with high-level constructs for creatingand manipulating 3D geometric objects.• These geometric objects reside in a virtual universe (from

astronomical to subatomic sizes) that is rendered.• A Java 3D program creates instances of Java 3D objects and

places them into a scene graph data structure.• The scene graph is an arrangement of 3D objects in a tree

structure that completely specifies the content of a virtualuniverse, and how it is to be rendered.

• Visual and audio objects are defined in terms of theattributes: geometry, sound, lights, location, orientation,and appearance.

 

Java 3D API• javax.media.j3d package (~100 classes):

 – Java 3D core classes.

• com.sun.j3d.utils package:

Page 243: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 243/352

com.sun.j3d.utils package: – Java 3D utility classes; – four major categories:

• content loaders,• scene graph construction aids,• geometry classes,• and convenience utilities.

• java.awt package: – creates windows to display the rendering …

• javax.vecmath package: – defines vector math classes for points, vectors, matrices, and other

mathematical objects.

 

Scene Graph• A Java 3D virtual universe is created from a scene

graph. A scene graph is created using instances of

Page 244: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 244/352

Java 3D classes. The scene graph is assembledfrom objects to define the geometry, sound, lights,location, orientation, and appearance of visual andaudio objects.

• It is a data structure composed of nodes (Node

objects) and arcs in a parent-child relationshipforming a tree structure.• NodeComponent objects define the geometry and

appearance attributes used to render the visualobjects.

 

Scene Graph - symbols

Page 245: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 245/352

 

Scene Graph – example• The geometric objects in

the scene (including

Page 246: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 246/352

movements andanimations) areassigned to the ContentBranch.

• The View Platform (View

Branch) defines viewingparameters like theposition of the viewer,the direction of his viewor the type of projection.

• Lights is responsible forillumination of the scene.

 

Scene Graph – example

Page 247: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 247/352

 

Scene Graph - Class Hierarchy

Page 248: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 248/352

 

Scene Graph – Main Classes• Each scene graph has a single VirtualUniverse .• The VirtualUniverse object has a list of Locale objects.

Page 249: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 249/352

• A Locale object provides a reference point in the virtualuniverse: – determines the location of the visual objects in the virtual universe; – establishes a virtual world Cartesian coordinate system.

• BranchGroup object:

 – It is the root of a sub graph, or branch graph. – There are two different categories of scene sub graph:

• the view branch graph: specifies the viewing parameters such as theviewing location and direction.

• the content branch graph: specifies the contents of the virtual universe -geometry, appearance, behaviour, location, sound, and lights.

 – The two branches specify much of the work the renderer has to do.

 

Scene Graph – Main Classes• Node class:

 – Abstract super class of Group and Leaf classes.

– Defines some important common methods for its subclasses.

Page 250: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 250/352

  Defines some important common methods for its subclasses. – The subclasses of Node compose scene graphs.

• Group class: – Super class used in specifying the location and orientation of visual

objects in the virtual universe. – BranchGroup (BG) and TransformGroup (TG) are subclasses of

Group .• Transformation groups are used:

 – to associate transformations to elementary geometric objects in orderto transform them or

 – to combine transformation groups to more complex objects and to

consider and position the combined object as a single object.

 

Scene Graph – Main Classes• Leaf class:

 – Super class used for specifying the shape, sound, and behaviour ofvisual objects in the virtual universe.

Page 251: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 251/352

 – Shape3D , Light , Behavior , and Sound are subclasses of Leaf . – These objects can have no children but may reference

NodeComponents .

• NodeComponent class: – Super class used in specifying the geometry, appearance, texture, and

material properties of a Shape3D (Leaf ) node. – NodeComponents are not part of the scene graph, but are referenced

by it. – A NodeComponent may be referenced by more than one Shape3D 

object.

 

Scene Graph – SimpleUniverse object

Page 252: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 252/352

 

Scene Graph – SimpleUniverse object• A SimpleUniverse object provides a minimal Virtual Universe

(indicated by the dashed line).

Page 253: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 253/352

• This class sets up a minimal user environment to quickly andeasily get a Java 3D program up and running: – creates all the necessary objects for a view branch graph. – creates Locale , VirtualUniverse , ViewingPlatform , and Viewer objects

with default values and with the appropriate relationships to form theview branch graph.

• SimpleUniverse (): – Constructs a simple virtual universe.

• SimpleUniverse(Canvas3D canvas3D): – Construct as simple universe with a reference to the named

Canvas3D object.

 

Projection• The projection of an object onto a projection plane is obtained by

connecting the points of the object with the centre of projection andcomputing the intersection points of these lines, called projectors, with theprojection plane. The centre of projection might be at infinity.

Page 254: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 254/352

p j p p j g y• Such projections are described in terms of geometric transformations.• For a parallel projection the centre of projection is at infinity and the

projectors are parallel. If a concrete centre of projection is given, theprojection is called perspective projection. The centre of projectionrepresents the position of the viewer.

• Perspective and parallel projections:

 

Projection• Java3D uses perspective projection by default.• Switching to parallel projection:

Page 255: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 255/352

simpUniv.getViewer().getView().setProjectionPolicy( 

View.PARALLEL_PROJECTION); 

• Java3D uses a right-handed orientation of the coordinate system: 

 

Image plate and eye position

Page 256: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 256/352

• Image plate: – conceptual rectangle where the content is projected to form the rendered image; – it’s the Canvas3D object; – is centred at the origin in the SimpleUniverse ;

• ViewingPlatform.setNominalViewingTransform(): – Sets the nominal viewing distance to approximately 2.41 meters in the view transform of

a SimpleUniverse. – At this viewing distance and the default field of view, objects of height and width of 2

meters generally fit on the image plate.

• Coordinate system is right-handed: – x-axis is positive to the right, y-axis is positive up and z-axis is positive toward theviewer.

 – all units in meters.

 

Elementary geometric objects• The class Appearance is responsible for assigning colour, texture and

refection properties to the surface of a 3D object.Appearance myApp = new Appearance(); 

setToMyDefaultAppearance(myApp, new Color3f(r,g,b)); 

Page 257: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 257/352

set o y e au t ppea a ce( y pp, e Co o 3 ( ,g,b));

• Implementation of setToMyDefaultAppearance: 

public static void setToMyDefaultAppearance(Appearance app, Color3f col) { 

app.setMaterial(new Material(col,col,col,col,150.0f)); 

 }

• Creation of a Box: 

Box xyzBox = new Box(x,y,z,myApp); 

• Creation of a Sphere: 

Sphere rSphere = new Sphere(r,myApp); 

• Creation of a Cylinder: 

Cylinder rhCyl = new Cylinder(r,h,myApp); 

• Creation of a Cone: 

Cone rhCone = new Cone(r,h,myApp);

 

HelloJava3Da program• This program displays a single colour cube object

that is static, and is neither transformed nor rotated

Page 258: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 258/352

from the origin.• The cube appears as a single rectangle.• This program is intended to demonstrate the basic

construction of a Java 3D program.

 

HelloJava3Da programimport java.applet.Applet; import java.awt.BorderLayout; import java.awt.Frame; import java.awt.GraphicsConfiguration; 

Page 259: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 259/352

import javax.media.j3d.BranchGroup; import javax.media.j3d.Canvas3D; 

import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.geometry.ColorCube; import com.sun.j3d.utils.universe.SimpleUniverse; 

 // HelloJava3Da renders a single, rotating cube.

public class HelloJava3Da extends Applet { ...

 }

 

HelloJava3Da programpublic HelloJava3Da() { 

setLayout(new BorderLayout()); GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); 

Page 260: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 260/352

Canvas3D canvas3D = new Canvas3D(config); add("Center", canvas3D); 

BranchGroup scene = createSceneGraph(); 

 // SimpleUniverse is a Convenience Utility class SimpleUniverse simpleU = new SimpleUniverse(canvas3D); 

 // This will move the ViewPlatform back a bit so the  // objects in the scene can be viewed.simpleU.getViewingPlatform().setNominalViewingTransform(); 

simpleU.addBranchGraph(scene);  } // end of HelloJava3Da (constructor)

 

HelloJava3Da programpublic BranchGroup createSceneGraph() { 

 // Create the root of the branch graph 

BranchGroup objRoot = new BranchGroup(); 

Page 261: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 261/352

objRoot.addChild(new ColorCube(0.4)); 

return objRoot; 

 } // end of CreateSceneGraph method of HelloJava3Da 

 // The following allows this to be run as an application 

 // as well as an applet 

public static void main(String[] args) { 

Frame frame = new MainFrame(new HelloJava3Da(), 256, 256); 

 } // end of main (method of HelloJava3Da)

 

MainFrame Class• Makes an applet into an application. A class derived

from Applet may have a main() method which calls

Page 262: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 262/352

the MainFrame constructor.• MainFrame extends java.awt.Frame and implements java.lang.Runnable , java.applet.AppletStub , and java.applet.AppletContext .

• MainFrame(java.applet.Applet applet, int width, int height)

 – Creates a MainFrame object that runs an applet as anapplication.

 

HelloJava3Da  – scene graph

Page 263: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 263/352

 

HelloJava3Da  – image produced

Page 264: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 264/352

 

BranchGroup class• Instances of BranchGroup are the root of sub

graphs.

Page 265: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 265/352

• They are the only objects allowed to be children ofLocale objects.

• Can have multiple children: other Group or Leaf objects.

 

Canvas3D class• Derives from the Canvas class of AWT.• At least one Canvas3D object must be referenced in

Page 266: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 266/352

the viewing branch graph of the scene graph.• Canvas3D(GraphicsConfiguration 

graphicsconfiguration)

 – Constructs and initializes a new Canvas3D object that

Java 3D can render given a valid GraphicsConfiguration object.

 

Transform3D Class• Transform3D objects represent transformations of 3D

geometry such as translation, rotation, scaling, or acombination of these.

Page 267: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 267/352

• When specifying a rotation: – angle is expressed in radians; – one full rotation is 2 PI radians; – use the constant Math.PI .

• Typically used in the creation of a TransformGroup object.

First, the Transform3D object is constructed, possibly from acombination of Transform3D objects. Then theTransformGroup object is constructed using the Transform3D object.

• It is a generalized transform object represented internally asa 4x4 double precision floating-point matrix.

 

Transform3D Class• Transform3D()

 – Constructs a Transform3D object that represents the identity matrix(no transformation).

id X(d bl l )

Page 268: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 268/352

• void rotX(double angle) – Sets the value of this transform to a counter clockwise rotation aboutthe x-axis. The angle is specified in radians.

• void rotY(double angle) – Sets the value of this transform to a counter clockwise rotation about

the y-axis. The angle is specified in radians.• void rotZ(double angle)

 – Sets the value of this transform to a counter clockwise rotation aboutthe z-axis. The angle is specified in radians.

• void set(Vector3f translate) – Sets the translational value of this matrix to the Vector3f parameter

values, and sets the other components of the matrix as if thistransform were an identity matrix.

 

TransformGroup Class• Subclass of the Group class.• Instances of TransformGroup are used in the creation of

scene graphs.

Page 269: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 269/352

• Have a collection of child node objects.• They hold geometric transformations such as translation androtation. The transformation is typically created in aTransform3D object.

• TransformGroup() – Constructs and initializes a TransformGroup using an identity

transform.• TransformGroup(Transform3D t1) – Constructs and initializes a TransformGroup from the Transform3D 

object passed.• void setTransform(Transform3D t1)

 – Sets the transform component of this TransformGroup to the value of

the passed transform.

 

Transformations in Java 3D• The class Transform3D stores 3D transformations

as matrices (in homogeneous coordinates),analogous to the 2D case.T f 3D tf T f 3D()

Page 270: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 270/352

• Transform3D tf = new Transform3D();  – generates the identity transformation

corresponding to the unit matrix.• tf.rotX(theta); 

 – defines tf as a rotation by the angle theta aroundthe x-axis . rotY and rotZ analogously for the y-and the z-axis.

• tf.set(new AxisAngle4d(x,y,z,theta));  – defines a rotation by the angle theta around the

axis in the direction of the float-vector (x,y,z).

 

Transformations in Java 3D• A translation by the float-vector (x,y,z) is specified by

tf.setTranslation(new Vector3f(x,y,z)); 

• The method

tf tS l ( V t 3f( ))

Page 271: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 271/352

 – tf.setScale(new Vector3f(x,y,z)); leads to the scaling S(x,y,z). – tf.setScale(factor) defines a scaling with the same scaling factor factor for the

x–, y- and z-direction.

• Arbitrary transformations can be defined by tf.set(matrix); where matrix isa one-dimensional double-array with 16 values specifying the entries inthe matrix.

• tf.get(matrix); stores the matrix associated with the transformation tf in the(one-dimensional) double-array matrix.

• Composition of transformations (matrix multiplication): – tf.mul(tf1,tf2); 

 – tf1.mul(tf2); 

 

Vector3f Class• Math class for specifying a vector using three

floating-point values.

Page 272: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 272/352

• Often used to specify translations of geometry,surface normals, or other things.• Vector3f()

 – Constructs and initializes a Vector3f to (0,0,0).

• Vector3f(float x, float y, float z) – Constructs and initializes a Vector3f from the specified x,

y, z coordinates.

 

ColorCube Class• Utility class that defines the geometry and colours of a cube

centred at the origin with different colours on each face.• If a non-rotated cube is placed at the origin, the red face will

Page 273: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 273/352

be visual from the nominal viewing location.• Other colours are blue, magenta, yellow, green, and cyan.• ColorCube()

 – Constructs a colour cube of default size. By default, a corner is located

1 meter along each of the axis from the origin, resulting in a cube thatis centred at the origin and is 2 meters high, wide and deep.

• ColorCube(double scale)

 – Constructs a colour cube scaled by the value specified. The defaultsize is 2 meters on an edge. The resulting ColorCube has corners at(scale, scale, scale) and (-scale, -scale, -scale).

 

Visual navigation through the scene• The below Java code enable navigation through the

scene using the mouse:

M i h hil i i l f b h

Page 274: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 274/352

 – Moving the mouse while pressing its left button: the sceneis rotated. – The right mouse button is for moving through the scene. – Zooming is achieved by pressing the ALT-key together

with the left mouse button and moving the mouse.

OrbitBehavior ob = new OrbitBehavior(myCanvas3D); 

ob.setSchedulingBounds(new BoundingSphere( 

new Point3d(0.0,0.0,0.0),Double.MAX_VALUE)); 

simpUniv.getViewingPlatform().setViewPlatformBehavior(ob); 

 

HelloJava3Db program• This program displays a single colour cube object

that is static but rotated from the original orientation.

Page 275: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 275/352

• More than one face of the cube is visible whenrendered.• This program is intended to demonstrate the basic

construction of a Java 3D program.

 

HelloJava3Db programpublic BranchGroup createSceneGraph() { 

 // Create the root of the branch graph BranchGroup objRoot = new BranchGroup (); 

 // rotate object has composited transformation matrix Transform3D rotate new Transform3D(); R i

Page 276: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 276/352

Transform3D rotate = new Transform3D (); Transform3D tempRotate = new Transform3D (); 

rotate.rotX(Math.PI / 4.0d); tempRotate.rotY(Math.PI / 5.0d); rotate.mul(tempRotate); 

TransformGroup objRotate = new TransformGroup (rotate); 

objRoot.addChild(objRotate); objRotate.addChild(new ColorCube (0.4)); 

 // Let Java 3D perform optimizations on this scene graph.objRoot.compile(); 

return objRoot; 

 } // end of CreateSceneGraph method of HelloJava3Db 

Rotatingthe cube

 

HelloJava3Db program - Scene graph

Page 277: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 277/352

 

HelloJava3Db program – image produced

Page 278: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 278/352

 

HelloJava3Dc program• This program displays a single colour cube object

that is animated. The cube spins in place at the

i i

Page 279: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 279/352

origin.• More than one face of the cube is visible as theanimation takes place.

• This program is intended to demonstrate the basic

construction of an animated Java 3D program.

 

HelloJava3Dc programpublic BranchGroup createSceneGraph() { 

 // Create the root of the branch graph BranchGroup objRoot = new BranchGroup(); 

 // Create the transform group node and initialize it to the  // identity. Add it to the root of the subgraph.

TransformGroup objSpin = new TransformGroup();objSpin setCapability(TransformGroup ALLOW TRANSFORM WRITE); A i ti

Page 280: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 280/352

TransformGroup objSpin new TransformGroup(); objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); objRoot.addChild(objSpin); 

 // Create a simple shape leaf node, add it to the scene graph. // ColorCube is a Convenience Utility class objSpin.addChild(new ColorCube(0.4)); 

 // Create a new Behavior object that will perform the desired  // operation on the specified transform object and add it into 

 // the scene graph.Alpha rotationAlpha = new Alpha(-1, 2); 

RotationInterpolator rotator = new RotationInterpolator(rotationAlpha, objSpin); 

 // a bounding sphere specifies a region a behavior is active  // create a sphere centered at the origin with radius of 100 BoundingSphere bounds = new BoundingSphere(); 

rotator.setSchedulingBounds(bounds); objSpin.addChild(rotator); 

return objRoot;  } // end of CreateSceneGraph method 

AnimationBehaviour

 

HelloJava3Dc program – Scene Graph

Page 281: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 281/352

 

Animation behaviour• Instead of a static transformation to position an object, a

transformation group can also contain transformations formovements (and also other animations like colour changes).

Interpolators are needed to model the contin o s transition of

Page 282: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 282/352

• Interpolators are needed to model the continuous transition ofan object or a complete transformation group from an initialposition or state to a final position or state: – PositionInterpolator : Linear interpolation between an initial and a final

point (translation as animation). – RotationInterpolator : Interpolation of rotating movement.

 – ScaleInterpolator : Continuous scaling of size. – ColorInterpolator : Continuous change of a colour. – PathInterpolator : Interpolation along various transformations. For

example, the PositionPathInterpolator enables a movement along apolyline .

 – TransparencyInterpolator : change of transparency.

 

RotationInterpolator class• specifies a rotation behaviour of a visual object or a group of

visual objects;• changes a TransformGroup object to a specific rotation in

response to the value of an Alpha object;

Page 283: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 283/352

response to the value of an Alpha object;• As the value of an Alpha object changes over time, the

rotation changes as well;• RotationInterpolator(Alpha alpha, TransformGroup target): 

 – This constructor uses default values for some parameters of theinterpolator to construct a full rotation about the y-axis using thespecified interpolator target TransformGroup .

 – Parameters:• alpha  – the time varying function to reference.• target  – the TransformGroup object to modify.

 

Alpha values• When should the interpolation start?• Should the interpolation only go from state zero to state one

or should it also be reversed?H l h ld th t iti f t t t t t

Page 284: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 284/352

• How long should the transition from state zero to state onetake?

• Should the transition between the two states zero and one becarried out with constant speed or should it accelerate slowly

in the beginning at state zero until a maximum speed isreached and then slow down again to have a smooth stop instate one?

• Should the interpolation be carried out just once or should itbe repeated?

 

Alpha class• Used to create a time varying function;• Produces a value between 0 and 1, inclusive.• The value it produces is dependent on the time and the parameters of the Alpha 

object.

• Alpha objects are commonly used with an Interpolator behaviour object to provideanimations of visual objects

Page 285: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 285/352

• Alpha objects are commonly used with an Interpolator behaviour object to provideanimations of visual objects.• Alpha(): 

 – Continuous looping with a period of one second.• Alpha(int loopCount, long increasingAlphaDuration)

 – Takes only the loopCount and increasingAlphaDuration as parameters and assigns thedefault values to all of the other parameters.

 – The resulting Alpha object produces values starting at zero increasing to one.

 – This repeats the number of times specified by loopCount . If loopCount is –1, the alphaobject repeats indefinitely. – The time it takes to get from zero to one is specified in the second parameter using a

scale of milliseconds. – Parameters:

• loopCount - number of times to run this alpha object; a value of -1 specifies that the alpha loopsindefinitely.

• increasingAlphaDuration - time in milliseconds during which alpha goes from zero to one

 

Scheduling region• A scheduling region specifies the spatial boundary where the behaviour

takes place.• A behaviour is not active unless the ViewPlatform’s activation volume

intersects a Behavior object’s scheduling region.

• Bounding classes:

Page 286: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 286/352

• Bounding classes: – BoundingSphere , BoundingBox and BoundingPolytope 

• void setSchedulingBounds(Bounds region):  – Sets the Behavior's scheduling region to the specified bounds. – Parameters:

• region - the bounds that contains the Behavior's scheduling region.

• BoundingSphere class: – Defines a spherical bounding region that is defined by a centre point and a

radius; – BoundingSphere(): 

• This constructor creates a bounding sphere cantered at the origin (0, 0, 0) with aradius of 1.

 – BoundingSphere(Point3d center, double radius)• Constructs and initializes a BoundingSphere using the specified center point and

radius .

 

HelloJava3Dd program• This program displays a single colour cube object

that is transformed and animated. The cube spins in

place at the origin

Page 287: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 287/352

place at the origin.• More than one face of the cube is visible as theanimation takes place.

• This program is intended to demonstrate the basic

construction of an animated Java 3D program.

 

HelloJava3Dd programpublic BranchGroup createSceneGraph() { 

 // Create the root of the branch graph 

BranchGroup objRoot = new BranchGroup(); 

 // rotate object has composited transformation matrix Transform3D rotate = new Transform3D(); Transform3D tempRotate = new Transform3D(); 

rotate.rotX(Math.PI / 4.0d); 

tempRotate.rotY(Math.PI / 5.0d); 

rotate.mul(tempRotate); 

Transformation

Page 288: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 288/352

TransformGroup objRotate = new TransformGroup(rotate); 

 // Create the transform group node and initialize it to the  // identity. Enable the TRANSFORM_WRITE capability so that 

  // our behavior code can modify it at runtime. Add it to the   // root of the subgraph.

TransformGroup objSpin = new TransformGroup(); objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); 

objRoot.addChild(objRotate); objRotate.addChild(objSpin); 

  // Create a simple shape leaf node, add it to the scene graph.

 // ColorCube is a Convenience Utility class objSpin.addChild(new ColorCube(0.4)); 

 // Create a new Behavior object that will perform the desired  // operation on the specified transform object and add it into 

 // the scene graph.Transform3D yAxis = new Transform3D(); Alpha rotationAlpha = new Alpha(-1, 4000); 

RotationInterpolator rotator = new RotationInterpolator(rotationAlpha, objSpin, yAxis, 0.0f, (float) Math.PI * 2.0f); 

 // a bounding sphere specifies a region a behavior is active 

  // create a sphere centered at the origin with radius of 1BoundingSphere bounds = new BoundingSphere(); rotator.setSchedulingBounds(bounds); 

objSpin.addChild(rotator); 

return objRoot;  } // end of CreateSceneGraph method of HelloJava3Dd 

Transformationand

Behaviour

 

HelloJava3Dd program – Scene Graph

Page 289: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 289/352

 

13 b) - Computação Gráfica

Page 290: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 290/352

JAVA 3D TutorialPart 2

César Toscano Maio/2009 

Material extraído de:“Getting Started with the Java 3D API - A Tutorial for Beginners”, Dennis J Bouvier,https://java3d.dev.java.net/ , Sun Microsystems Inc.

e“Introduction to Computer Graphics: Using Java 2D and 3D”, Frank Klawonn, Springer, 2008

 

Creating geometry• There are three major ways to create new geometric

content:

Using the geometric classes for box cone cylinder andsphere to b ild more comple objects

Page 291: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 291/352

 – Using the geometric classes for box, cone, cylinder, andsphere to build more complex objects. – Specify the vertex coordinates for points, line segments,

and polygonal surfaces. – Use a geometry loader.

 

Shape3D class• A Shape3D scene graph

node defines a visual object.It is a sub class of Leaf class.

• A Shape3D object does notcontain information about the

Page 292: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 292/352

contain information about theshape or colour of a visualobject. This information isstored in theNodeComponent objectsreferred to by the Shape3D 

object.• A Shape3D object can refer

to one Geometry nodecomponent and oneAppearance nodecomponent.

 

Shape3D class• Shape3D()

 – Constructs and initializes a Shape3D object withoutgeometry and appearance node components.

Sh 3D(G t t )

Page 293: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 293/352

• Shape3D(Geometry geometry)

 – Constructs and initializes a Shape3D object with thespecified geometry and a null appearance component.

• Shape3D(Geometry geometry, Appearance appearance)

 – Constructs and initializes a Shape3D object with thespecified geometry and appearance components.

 

NodeComponents 

• NodeComponent objects contain the exact specification ofthe attributes of a visual object.

• Each of the several subclasses of NodeComponent definescertain visual attributes

Page 294: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 294/352

certain visual attributes.

 

Geometric Primitives  – class hierarchy

Page 295: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 295/352

 

Box class• Box()

 – Constructs a default box of 2.0 meters in height, width,and depth, centred at the origin.

Box(float xdim float ydim float zdim Appearance

Page 296: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 296/352

• Box(float xdim, float ydim, float zdim, Appearance appearance)

 – Constructs a box of a given dimension and appearance,centred at the origin.

 

Cone class• Cone()

 – Constructs a default cone of radius of 1.0 and height of2.0.

Cone(float radius float height)

Page 297: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 297/352

• Cone(float radius, float height)

 – Constructs a default cone of a given radius and height .

• The cone is centred at the origin with the central axisaligned along the y-axis.

• The centre of the cone is defined to be the centre ofits bounding box rather than its centroid.

 

Cylinder class• Cylinder()

 – Constructs a default cylinder of radius of 1.0 and height of2.0.

Cylinder(float radius float height)

Page 298: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 298/352

• Cylinder(float radius, float height)

 – Constructs a cylinder of a given radius and height.

• Cylinder(float radius, float height, Appearance appearance)

 – Constructs a cylinder of a given radius, height, andappearance.

• The cylinder is centred at the origin with its centralaxis aligned along the y-axis.

 

Box , Cone , and Cylinder methods• These methods are defined in each of the Primitive 

classes: Box , Cone , and Cylinder .

• Shape3D getShape(int partid)

Page 299: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 299/352

• Shape3D getShape(int partid) – Gets one of the faces (Shape3D ) from the primitive that

contains the geometry and appearance. Box , Cone , andCylinder objects are composed of more than oneShape3D object, each with its own Geometry node

component. The value used for partid specifies which ofthe Geometry node components to get.

• void setAppearance(Appearance appearance)

 – Sets appearance of the primitive (for all of the Shape3D objects).

 

Sphere class• Sphere()

 – Constructs a default sphere of radius of 1.0.

• Sphere(float radius)

Page 300: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 300/352

• Sphere(float radius) – Constructs a default Sphere of a given radius .

• Sphere(float radius, Appearance appearance)

 – Constructs a Sphere of a given radius and a givenappearance.

• The sphere is centred at the origin.

 

ConeYoyoApp.java • This program displays a yo-yo created with two

Cone objects. A default Appearance object is used.

The application spins the yo-yo about the y-axis toshow the geometry

Page 301: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 301/352

The application spins the yo yo about the y axis toshow the geometry.• Default position of a Cone object:

 – its bounding box is centred at the origin; – The tip of the Cone object is oriented towards the positive

y-axis.

• The yo-yo comprises two cones that are rotatedabout the z-axis and translated along the x-axis tobring the tips of the cones together at the origin.

 

ConeYoyoApp.java 

Page 302: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 302/352

 

Mathematical classes• Used to specify vertex-related data.• Each vertex of a visual object may specify up to four

 javax.vecmath objects, representing coordinates, colours,

surface normals, and texture coordinates:

Page 303: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 303/352

surface normals, and texture coordinates: – Point*  for coordinates; – Color*  for colours;

 – Vector*  for surface normals; – TexCoord* for texture coordinates.

• Coordinates (Point* objects) are necessary to position eachvertex. The other data is optional.

 

Mathematical classes - hierarchy

Page 304: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 304/352

 

Tuple2f class• Tuple* classes provide the base for Point *, Color *, Vector *,

and TexCoord * classes.• Tuple2f()

 – Constructs and initializes a Tuple object with the coordinates (0,0).• Tuple2f(float x, float y)

Page 305: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 305/352

p ( , y) – Constructs and initializes a Tuple object from the specified x, y

coordinates.• Tuple2f(float[] t)

 – Constructs and initializes a Tuple object from the specified array.

• Tuple2f(Tuple2f t) – Constructs and initializes a Tuple object from the data in anotherTuple object.

• Tuple2f(Tuple2d t) – Constructs and initializes a Tuple object from the data in another

Tuple object.

 

Tuple2f class• void set(float x, float y)• void set(float[] t)

 – Sets the value of this Tuple from the specified values.• boolean equals(Tuple2f t1)

 – Returns true if the data in the Tuple t1 are equal to the corresponding data in this Tuple .

• final void add(Tuple2f t1) – Sets the value of this Tuple to the vector sum of itself and Tuple t1.

Page 306: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 306/352

• void add(Tuple2f t1, Tuple2f t2) – Sets the value of this Tuple to the vector sum of tuples t1 and t2.

• void sub(Tuple2f t1, Tuple2f t2) – Sets the value of this Tuple to the vector difference of Tuple t1 and t2 (this = t1 - t2).

• void sub(Tuple2f t1) – Sets the value of this Tuple to the vector difference of itself and Tuple t1 (this = this - t1).

• void negate() – Negates the value of this vector in place.• void negate(Tuple2f t1)

 – Sets the value of this Tuple to the negation of Tuple t1.• void absolute()

 – Sets each component of this Tuple to its absolute value.• void absolute(Tuple2f t)

 – Sets each component of the Tuple parameter to its absolute value, and places the modified valuesinto this Tuple .

 

Point3f class• A Point * object represents a single point in 2-, 3-, or 4-space.• A Point * class derives from the Tuple * class.• float distance(Point3f p1)

 – Returns the Euclidean distance between this point and point p1.

Page 307: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 307/352

p p p

• float distanceSquared(Point3f p1)

 – Returns the square of the Euclidean distance between this point andpoint p1.

• float distanceL1(Point3f p1)

 – Returns the L1 (Manhattan) distance between this point and point p1.The L1 distance is equal to:

• abs(x1 - x2) + abs(y1 - y2) + abs(z1 - z2)

 

Color classes• Color * objects are specified as Color3 * or Color4 * and

represent a colour, which can be for a vertex, materialproperty, fog, or other visual object.

• Color3 * objects specify a colour as a combination of red,

Page 308: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 308/352

j p y ,green, and blue (RGB) values.

• Color4 * objects specify a transparency value, in addition toRGB. (By default, Color3 * objects are opaque.)

• For byte-sized data types, colour values range between 0and 255, inclusive.

• For single-precision floating point data, colour values rangebetween 0.0 and 1.0, inclusive.

• A Color * class derives from the Tuple * class.

 

Vector3f class• A Vector * class derives from the Tuple * class.• A Vector * object represents a single vector in 2-, 3-, or 4-space.• Vector * objects may represent surface normals at vertices or the direction of a

light source or sound source.• float length()

 – Returns the length of this vector.fl t l thS d()

Page 309: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 309/352

• float lengthSquared() – Returns the squared length of this vector.

• void cross(Vector3f v1, Vector3f v2) – Sets this vector to be the vector cross product of vectors v1 and v2.

• float dot(Vector3f v1) – Computes and returns the dot product of this vector and vector v1.

• void normalize() – Normalizes this vector.

• void normalize(Vector3f v1) – Sets the value of this vector to the normalization of vector v1.

• float angle(Vector3f v1) – Returns the angle in radians between this vector and the vector parameter; the return

value is constrained to the range [0,PI].

 

3D object modelling• Objects of the virtual world may be constructed with

elementary geometric shapes like boxes, spheres,cylinders and cones. In many cases these simpleshapes are not sufficient to model surfaces of more

Page 310: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 310/352

shapes are not sufficient to model surfaces of morecomplex objects.

• Techniques for modelling three-dimensional objectsand their surfaces: – Voxel models – Octrees – CSG - Constructive Solid Geometry – Sweep representation

 

Objects to avoid• What kind of objects are considered in computer

graphics?

• Any subset of the space R3

, except things like:isolated points edges and faces

Page 311: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 311/352

Any subset of the space R , except things like: – isolated points, edges and faces, – dangling or extra edges and faces.

 

Modelling surfaces• In order to show a 3D object, its surface is of

importance, not the set of points in the 3D spacethat are occupied by the object.

• The intention of computer graphics techniques for

Page 312: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 312/352

e te t o o co pute g ap cs tec ques omodelling objects usually focuses on surfaces andnot on sets of points in R3.

• When objects are measured with 3D scanners or in

the case of tomography data, no explicit definition ofthe surface of the object is available. In such cases itis common that the object is first described as a 3Dset of points and then derive from this set theobject’s surface.

 

Tesselation• Technique where polygons (usually triangles) are

used to approximate curved surfaces.

• Triangulation of a polygon:

Page 313: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 313/352

g p yg

• Triangles have the advantage that very efficient

computer graphics algorithms are available for them.They can also be directly implemented on a graphicscard.

 

Orientation of polygons• The triangles or polygons that approximate a surface have an

orientation that serves to determine the outside face of thesurface.

• The orientation is given by the order of the polygon’s vertices.Wh l ki t th f f th t id f th bj t

Page 314: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 314/352

When looking onto the surface from the outside of the object,the vertices are listed in anticlockwise order.

• Example: – 0,1,2 visible for the viewer. – 0,2,1 invisible for the viewer.

 

Orientation of polygons

• The faces of this tetrahedron canbe defined by the groups of

vertices:– P0, P3, P1

Page 315: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 315/352

  P0, P3, P1

 – P0, P2, P3

 – P0, P1, P2

 – P1, P3, P2

 

Voxel model• Simple technique for modelling 3D objects. The 3D

space is partitioned into a grid of small, equisizedcubes (the voxels). A 3D object is defined by those

voxels that lie inside the object.A l b l D bj if i li i id

Page 316: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 316/352

j• A voxel belongs to a 3D object if its centre lies inside

the 3D object.

• The quality of approximation of a 3D

object by voxels depends on the sizeof the voxels: – Small voxels Good approximation, but

high computational and memory costs. – Larger voxels Rough approximation,

but low computational and memory costs.

 

Octrees model• Model based on voxels with varying size. Small voxels are

only used where a fine resolution is needed.• Example: to model a 3D sphere, one may use a big voxel to

model a large portion of its interior and use smaller voxels torepresent its surface

Page 317: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 317/352

represent its surface.• Algorithm:

 – Fit the 3D object into a sufficiently large cube or box.

 – Partition the cube into eight smaller cubes.

 – Smaller cubes that lie completely inside or completely outside theobject are marked with in and off , respectively. These cubes do notneed further refinement.

 – The remaining cubes are marked with on , indicating that the cubeintersects the surface of the object. These cubes will need to befurther refined (repeat the process).

 

Octrees model• 2D counterpart (quadtrees)• Each considered area is recursively

partitioned into four squares.

• Corresponding quadtree up to level

Page 318: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 318/352

4:

 

Voxel model and octrees• Voxel models and octrees are tailored for

representing objects based on data obtained usingspecific 3D measurement techniques. For efficiencypurposes, a raw voxel model can be turned into an

Page 319: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 319/352

p poctree easily.

• Both models are not suitable for realisticrepresentations of object surfaces. For proper

illumination and light reflection effects, it is veryimportant to take the slope of the surface intoaccount. For this, surfaces may be approximated byparametric freeform surfaces.

 

CSG scheme• “Constructive solid geometry”. Based on a collection of

elementary geometric objects (box, sphere, cylinder, cone,…).

• More complex objects are built through transformations andregularised set theoretic operations (union intersection

Page 320: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 320/352

regularised set-theoretic operations (union, intersection,difference) applied to these elementary objects.

 

Sweep representation• A three-dimensional object is generated from a two-

dimensional shape that is moved along a trajectory.

Page 321: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 321/352

 

Approximation by polygons• The surfaces of the

elementary geometricobjects in this scene areapproximated by triangles.The figure shows thenderl ing tesselation (

Page 322: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 322/352

underlying tesselation (seeTesselationBWExample.java).

• The larger the number of triangles, the better the curvedsurface can be approximated.• Representation of a sphere with different tesselations (see

TesselationResolution.java):

 

Tesselation in Java 3D• To display objects as wire frame models in Java 3D:

PolygonAttributes polygAttr = new PolygonAttributes(); 

polygAttr.setPolygonMode(PolygonAttributes.POLYGON_LINE); 

myApp setPolygonAttributes(polygAttr);

Page 323: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 323/352

myApp.setPolygonAttributes(polygAttr); 

• The resolution of the tesselation modeling can be specified.Approximation of basic geometric objects surface by res

triangles:

Sphere s = new Sphere(r,Sphere.GENERATE_NORMALS,res,sphereApp); 

Cylinder c = new Cylinder(r,h,Cylinder.GENERATE_NORMALS,xres,yres,app); 

Cone c = new Cone(r,h,Cone.GENERATE_NORMALS,xres,yres,app); 

 

Geometry classes• In 3D, everything from the simplest triangle to the most

complicated jumbo jet model is modelled and rendered withvertex-based data.

• Used to specify points, lines and filled polygons (triangles andquadrilaterals).

Page 324: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 324/352

• Each Shape3D object should reference one and only oneGeometry object (Geometry is an abstract super class).

• Sub class categories of Geometry : – Non-indexed vertex-based geometry:

• each time a visual object is rendered, its vertices may be used only once; – Indexed vertex-based geometry:

• each time a visual object is rendered, its vertices may be reused; – Other visual objects:

• classes Raster , Text3D , and CompressedGeometry .

 

Geometry classes - hierarchy

Page 325: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 325/352

 

GeometryArrays• A GeometryArray defines a 3D object (i.e. its surface) and mainly consists

of: – points (vertices), – faces (or polygons, usually triangles or quadrangles) defined via the specified

vertices, – information about colour or texture,

Page 326: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 326/352

 – normal vector containing information about the true structure of the surface.• A simple way to generate a GeometryArray:

 – Partition the surface to be modelled into triangles. – Define an array containing the vertices of the triangles:

Point3f[] vertices = { new Point3f(...), ... new Point3f(...) };  – Definition of the triangles:int triangles[] = { 0,2,1, 1,4,7, ... }; 

 – The surface consists of the triangles given by the points (elements):• 0, 2 and 1;• 1, 4 and 7 in the vertices array;• …

 

GeometryArrays• First generate a GeometryInfo object:

GeometryInfo gi = new GeometryInfo(GeometryInfo.TRIANGLE_ARRAY); 

gi.setCoordinates(vertices); 

gi.setCoordinateIndices(triangles); NormalGenerator ng = new NormalGenerator(); 

Page 327: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 327/352

ng.generateNormals(gi); 

• Generate an GeometryArray from the GeometryInfo objectand turn this into a Shape3D:GeometryArray ge = gi.getGeometryArray(); 

Shape3D inducedShape = new Shape3D(ge,desiredAppearance); 

• This Shape3D object can be assigned to transformationgroups in the same way as elementary geometric objects.

• See GeomArrayExample.java example.

 

GeometryArray class• GeometryArray(int vertexCount, int vertexFormat)

 – Constructs an empty GeometryArray object with the specified numberof vertices, and vertex format. One or more individual flags are bitwise"OR"ed together to describe the per-vertex data. The flag constantsused for specifying the format are:

• COORDINATES : Specifies this vertex array contains coordinates. This bitmust be set.

Page 328: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 328/352

• NORMALS : Specifies this vertex array contains surface normals.• COLOR_3 : Specifies this vertex array contains colours without

transparency.• COLOR_4 : Specifies this vertex array contains colours with transparency.• TEXTURE_COORDINATE_2 : Specifies this vertex array contains 2D

texture coordinates.• TEXTURE_COORDINATE_3 : Specifies this vertex array contains 3D

texture coordinates. – For each vertex format flags set, there is a corresponding array

created internal to the GeometryArray object. Each of these arrays isvertexCount in size.

 

AxisApp.java program• This program displays the axis to demonstrate using

LineArray object.

Page 329: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 329/352

 

GeometryArray class• void setCoordinate(int index, float[] coordinate)

• void setCoordinate(int index, double[] coordinate)

• void setCoordinate(int index, Point* coordinate) – Sets the coordinate associated with the vertex at the specified index for this

object.• void setCoordinates(int index, float[] coordinates)

• void setCoordinates(int index double[] coordinates)

Page 330: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 330/352

• void setCoordinates(int index, double[] coordinates)

• void setCoordinates(int index, Point*[] coordinates) – Sets the coordinates associated with the vertices starting at the specified

index for this object.• void setColor(int index, float[] color)

• void setColor(int index, byte[] color)• void setColor(int index, Color* color)

 – Sets the colour associated with the vertex at the specified index for this object.• void setColors(int index, float[] colors)

• void setColors(int index, byte[] colors)

• void setColors(int index, Color*[] colors)

 – Sets the colours associated with the vertices starting at the specified index forthis object.

 

GeometryArray class• void setNormal(int index, float[] normal)• void setNormal(int index, Vector* normal)

 – Sets the normal associated with the vertex at the specified index forthis object.

• void setNormals(int index, float[] normals)• void setNormals(int index Vector*[] normals)

Page 331: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 331/352

void setNormals(int index, Vector [] normals) – Sets the normals associated with the vertices starting at the specified

index for this object.• void setTextureCoordinate(int index, float[] texCoord)

• void setTextureCoordinate(int index, Point* coordinate) – Sets the texture coordinate associated with the vertex at the specifiedindex for this object.

• void setTextureCoordinates(int index, float[] texCoords)• void setTextureCoordinates(int index, Point*[] texCoords)

 – Sets the texture coordinates associated with the vertices starting atthe specified index for this object.

 

GeometryArray subclasses

Page 332: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 332/352

• By default, the interiors of triangles and quadrilaterals are filled.• None of the vertices are shared: each line or filled polygon is rendered

independently of any other.• When rendering quadrilaterals, be careful that the vertices do not create

concave, self-intersecting, or non-planar geometry.• PointArray(int vertexCount, int vertexFormat)

• LineArray(int vertexCount, int vertexFormat)

• TriangleArray(int vertexCount, int vertexFormat)

• QuadArray(int vertexCount, int vertexFormat)

 

GeometryStripArray subclasses

Page 333: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 333/352

• Vertices are shared.• PointArray(int vertexCount, int vertexFormat)

• LineArray(int vertexCount, int vertexFormat)

• TriangleArray(int vertexCount, int vertexFormat)

• QuadArray(int vertexCount, int vertexFormat)

 

Programs to use• ColorYoyoApp.java: 

 – This program displays a yo-yo using 4 TriangleFanArray geometry objectswith colours. The application spins the yo-yo about the y-axis to show thegeometry.

 – The TriangleFanArray contains four independent fans: two exterior faces

(circular disks) and two internal faces (cones). Only one TriangleFanArray object is needed to represent the four fans.• YoyoLineApp java

Page 334: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 334/352

• YoyoLineApp.java  – This program displays the TriangleFanArray object with the Appearance set to

display lines only. The application spins the yo-yo about the y-axis to show thegeometry.

• StaticSceneExample.java

 – This program displays a tree and a helicopter in a platform, through thecomposition of several simpler geometric objects.• TesselationBWExample.java

 – This program displays a tree and a helicopter in a platform. It shows theapproximation of surfaces throughout the tessellation technique.

• TesselationResolution.java – This program shows the representation of a sphere with different tessellations.

• GeomArrayExample.java – This program shows the modelling of a tetrahedrons’ surfaces through theGeometryArray class.

 

Programs to use• YoyoPointApp.java 

 – This program displays the TriangleFanArray object with the Appearance set topoints lines only. The application spins the yo-yo about the y-axis to show thegeometry.

• ColorYoyoApp.java 

 – This program displays a yo-yo using four TriangleFanArray geometry objectswith colours. The application spins the yo-yo about the y-axis to show thegeometry

Page 335: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 335/352

geometry.• Axis.java 

 – Defines a visual object class using an IndexedLineArray object used tovisualize the axis.

 – The program AxisClassDemoApp.java uses this Axis class.

• AxisClassDemoApp.java  – A ColorCube orbits around the origin in this program. It demonstrates a use of

the Axis.java class.• ColorConstants.java 

 – This code is an example of a class that defines a number of colour constants.The application spins the yo-yo about the y-axis to show the geometry.

• TwistStrip.java 

 – This program displays a twisted strip as an example of using theTriangleStripArray . The twist strip program also demonstrates culling.

 

Appearance and Attributes • Shape3D objects may reference both a Geometry and an Appearance object.• The Geometry object specifies the per-vertex information of a visual object. The

per-vertex information in a Geometry object can specify the colour of visualobjects.

• In most cases, an Appearance object is also needed. This object does not containthe information for how the Shape3D object should look, but an Appearance object kno s here to find appearance data

Page 336: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 336/352

object knows where to find appearance data.• An Appearance object (already a subclass of NodeComponent ) may reference

several objects of other sub classes of the NodeComponent abstract class. Forexample:

 

Appearance and Attributes • An Appearance object can refer to several different

NodeComponent subclasses (appearance attribute objects): – PointAttributes 

 – LineAttributes  – PolygonAttributes 

Page 337: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 337/352

 – ColoringAttributes 

 – TransparencyAttributes 

 – RenderingAttributes 

 – Material  – TextureAttributes 

 – Texture 

 – TexCoordGeneration 

 

Loaders • A loader class reads 3D scene files and creates

Java 3D representations of that scene.• There are a variety of file formats for the purpose of

representing 3D scenes (.obj , .vrml , …); the actualcode to load a file is not part of Java 3D; only the

Page 338: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 338/352

code to load a file is not part of Java 3D; only theinterface for the loading mechanism is included.

• Example:

 – org.jdesktop.j3d.examples.objload.ObjLoad  – Arguments to invoke this application:-s (spin)-n (no triangulation)-t (no stripification)

 – Renders the file “resources/geometry/galleon.obj ”

 

ObjectFile class• Package: com.sun.j3d.loaders 

• The class implements the Loader interface for the

Wavefront .obj file format, a standard 3D object fileformat created for use with Wavefront's AdvancedVi li

Page 339: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 339/352

Visualizer.• Object Files are text based files supporting both

polygonal and free-form geometry (curves andsurfaces).

• The class doesn’t support free-form geometry.

 

Available loaders

Page 340: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 340/352

 

Some 3D Modelling Tools• Autodesk Maya: for developing models for games,

animations and movies.

• Blender3D: Open Source, can export WavefrontObject files, www.blender.org:

Page 341: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 341/352

 – See the test248 examples, for instance, in the render sub-folder the glass.blend and monkey_cornelius.blend files.

 

GeometryInfo • When you specify geometry through the core classes, you

are limited to triangles and quads.• GeometryInfo helps creating the geometry by hand.

• Instead of specifying each triangle, you can specify arbitrarypolygons (concave, non-planer).

Page 342: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 342/352

p yg ( , p )• The GeometryInfo object, and other utility classes, convert

the geometry into a triangular geometry that Java 3D canrender:

Polygon Triangulation

 

GeomInfoApp.java • Demonstrates the use of the GeometryInfo class to create

Java 3D geometry specified by arbitrary polygons.• This application creates the surface of a car using polygons.

The Triangulator , Stripifier , and NormalGenerator classes areused to convert the polygons into triangle strips with normals

Page 343: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 343/352

so the specified geometry can be shaded.• A wire frame view of the geometry can be viewed by

providing any command line argument when invoking the

program. For example, java GeomInfoApp –lines will showthe wire frame instead of the shaded surfaces.

• Triangulation : subdivision of a polygon into triangles.• Stripification : combines adjacent triangles into triangle strips for more efficient

rendering.

 

GeomInfoApp.java • The blue outlines show the contours specified in the

GeometryInfo object.• The red triangles were computed by the GeometryInfo object

with Triangulation , NormalGeneration , and Stripification doneautomatically.

Page 344: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 344/352

 

GeomInfoApp.java 

Page 345: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 345/352

 

GeometryInfo classes

Page 346: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 346/352

 

GeometryInfo class• The GeometryInfo object is where you put your geometry. Once you have

your data in the GeometryInfo object, you can send it to any (or all) ofseveral utilities to have operations performed on it, such as generatingnormals or turning it into long strips for more efficient rendering("stripifying "). Geometry is loaded just as it is in the Java 3D

GeometryArray object, but there are fewer options for getting data into theobject. GeometryInfo itself contains some simple utilities, such ascalculating indices for non indexed data ("indexifying ") and getting rid of

d d i i d d i f i (" i ")

Page 347: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 347/352

unused data in your indexed geometry information ("compacting ").

• GeometryInfo(int primitive):  – Constructs a GeometryInfo object, where primitive is one of:

• POLYGON_ARRAY possibly multi-contour, possibly non-planar polygons• QUAD_ARRAY each set of four vertices forms an independent quad• TRIANGLE_ARRAY each set of three vertices form an independent triangle• TRIANGLE_FAN_ARRAY the stripCounts array indicates how many vertices to use

for each triangle fan• TRIANGLE_STRIP_ARRAY that the stripCounts array indicates how many vertices

to use for each triangle strip

 

Triangulator class• Triangulator is a utility for turning arbitrary polygons

into triangles so they can be rendered by Java 3D.Polygons can be concave, nonplanar, and cancontain holes.

• Triangulator()

Page 348: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 348/352

• Triangulator()

 – Creates a new instance of the Triangulator .

• void triangulate(GeometryInfo gi)

 – Converts the GeometryInfo object from primitive typePOLYGON_ARRAY to primitive type TRIANGLE_ARRAY using polygon decomposition techniques.

 

Stripifier • The Stripifier utility will change the primitive of the

GeometryInfo object to Triangle Strips . The stripsare made by analyzing the triangles in the original

data and connecting them together.• For best results Normal Generation should be

Page 349: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 349/352

performed on the GeometryInfo object beforeStripification .

• Stripifier() – Creates the Stripifier object.

• void stripify(GeometryInfo gi) – Turn the geometry contained in the GeometryInfo object

into an array of Triangle Strips .

 

Background• By default, the background of a Java 3D virtual

universe is solid black.• You can specify a solid colour, an image, geometry,

or a combination of these, for a background.Wh if i i f th b k d it

Page 350: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 350/352

• When specifying an image for the background, itoverrides a background colour specification, if any.When geometry is specified, it is drawn on top of thebackground colour or image.

 

BackgroundApp.java • This application demonstrates defining geometry for the background of a

virtual world. The scene is of a grid of lines to represent the ground, aPointArray for stars, and a LineArray for a constellation. The stars andconstellation are in the background.

• The viewer can move around in the scene and experience the relativemotion between the ground and the stars in the background.

Page 351: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 351/352

 

BackgroundApp.java • The interaction (motion) is provided through the KeyNavigator class.

Page 352: CGM

5/8/2018 CGM - slidepdf.com

http://slidepdf.com/reader/full/cgm5571fbc6497959916995c643 352/352