Cor Programação Baseada em Acontecimentos Matemática (e … · Teoria dos três estimulos Cones...

Post on 03-Jan-2021

0 views 0 download

Transcript of Cor Programação Baseada em Acontecimentos Matemática (e … · Teoria dos três estimulos Cones...

Cor

Programação Baseada em Acontecimentos

Matemática (e geometria) para CG

1

Questão 1, (exame)

[1.0v] Explique, no contexto da computação gráfica interactiva, o que é uma frame e como esta se relaciona com o desempenho de um sistema gráfico.

Frame:

imagem estática gerada no final do pipeline

contêm vista a ser representada no dispositivo de visualização

Animação:

criada através da apresentação em sequência rápida deste frames.

tão mais fluida quanto mais frames se conseguirem apresentar por unidade de tempo.

O desempenho depende do nº de triângulos que se consegue desenhar por frame, (Para se medir o desempenho de um sistema gráfico usa-se o número de frames por segundo (fps)).

?

2

Conceitos BásicosCor

3

Espectro Electromagnético

4

Retina

Retina Bastonetes Cones

Célula BastoneteCélulas Cone

5

Teoria dos três estimulos

Cones são sensores de cor

Picos de sensibilidade

vermelho, verde, azul

Todas as outras cores

Representadas como combinações destas

Ciano = Azul + Verde

Amarelo = Verde + Vermelho

Etc…

gama

ro

beta

6

Modelação da CorCor

7

Caracterização da Cor

Cor (hue)

distinção entre cores

vermelho, verde, amarelo, lilás,…

Saturação (saturation)

distância da cor ao cinzento de igual intensidade

muito saturado - vermelho, azul

pouco saturado - rosa, azul do céu, cores pastel

8

Caracterização da Cor (cont.)

Luminosidade (lightness)

intensidade da luz reflectida por uma superfície

(parede, quadro)

Brilho (brightness)

intensidade da luz emitida por uma superfície

(lâmpada, Sol)

9

Características

Cor (hue)Distinção entre cores

Comprimento de onda dominante

Saturação (saturation)

Pureza da cor

Luminosidade (lightness)

Brilho (brightness)

10

CorModelos de Cor

11

Propriedades desejáveis dos

Modelos de cor

Uniformidade perceptual

Facilidade de navegação

Proximidade face à psicologia do sistema visual

Rigor

Facilidade de realização

Em computação gráfica:

12

Modelo de Munsell

Eixo vertical: value

Circunferência:hue

Raio: chroma

ilustração por Samuel J. Klein

13

Extracto do

“Munsell Book of Color ”

14

Guia de cores Pantone®

15

(Alguns) Modelos de Cor

RGB Red, Green, Blue

CMY Cyan, Magenta, Yellow (cores complementares)

HSV Hue, Saturation, Value

16

Modelo RGB

17

Espaço RGB

18

Espaço CMY

Vermelho (0,1,1)

Verde (1,0,1)

Branco = (0,0,0) Magenta = (0,1,0)

Amarelo = (0,0,1)

Ciano (1,0,0)

Preto = (1,1,1)

Azul (1,1,0)

Cinzentos 19

RGB

Modelo aditivo

CMYK

Modelo subtractivo

Conversão trivial:

RGB e CMY

B

G

R

Y

M

C

1

1

1

Y

M

C

B

G

R

1

1

1

20

Espaço HSV

1,0 cião

magenta

branco

0,0

preto

amarelo verde

120º

vermelho

azul

240º

S H

V

21

Programação Baseada em Acontecimentos

22

Contexto Histórico

Antes das aplicações interactivas de manipulação directa

Arquitecturas de interacção eram muito simples:

Programas sequenciais

Interpretadores linha de comandos (DOS, UNIX)

Programa controla e pede entradas

Utilizadores introduzem informação

Utilizadores esperam pelo programa

23

Programas sequenciais

Abordagem típicaLoop (forever)

Programa lê comando do utilizador

Programa analisa entrada

Programa avalia o resultado

Possivelmente gera saídas

End (loop)

Problema:

Como tratar múltiplas acções?

Como tratar acontecimentos assíncronos?

24

Modelo de Acontecimentos

Modelo desenvolvido para suportar criação de Interfaces de Manipulação Directa

Permite comunicação entre

objectos interactivos e o sistema de entradas/saídas

os próprios objectos entre si

Programa não espera pelo utilizador

Continua a processar acontecimentos, se estes acontecerem,

• mesmo sem input dos utilizadores

26

Modelo de Acontecimentos

Comunicação realizada via Acontecimentos (Event)

Acontecimento = algo interessante

Tecla premida

Janela redimensionada

Acabou o tempo de vida do meu personagem

27

Modelo de Acontecimentos

Acontecimentos armazenados em lista de

acontecimentos

Gestão da lista de acontecimentos assegura

que acontecimentos são tratados pela ordem

em que acontecem

Mouse Move

Key Press

Event Queue

28

Registo e Funções de Callback

Existem inúmeros acontecimentos no sistema

Nem todos interessam

Aplicação indica quais os acontecimentos “interessantes”

Registo e Funções de Callback

Regista-se função de Processamento de acontecimentos

“interessantes” (callback ou event handler ou event listener)

Esta função deve processar esse acontecimento

29

Registo e Funções de Callback

Exemplo

Registo de função de Callback…

window.addEventListener("keydown", onKeyDown);

Função de Callback

function onKeyDown(e) {

switch (e.keyCode) {

case ’S’: //S == 83ball.userData.jump = !ball.userData.jump;

break;

}

}

30

Ciclo Update/Display

31

exemplo.js

Update

Display

32

Matemática (e geometria) para CG

Edward Angel, Cap. 3

33

Notas

As definições matemáticas aqui apresentadas são

descritas na perspectiva de CG

Vamos evitar definições genéricas demasiado formais

Trabalhamos no espaço tridimensional (3D)

Mas a maioria do que aqui apresentamos é válido para

espaços n-dmensionais

34

Escalares, Pontos e VectoresMatemática para CG

35

Objectos Geométricos

Linhas Polígonos Poliedros

36

Objectos Geométricos

Objectos complexos podem ser definidos a partir de

um conjunto limitado de objectos mais simples

37

Objectos geométricos

Objectos e suas relações podem ser descritos usando

Escalares

Pontos

Vectores

𝛼 ∈ 𝑅

Tzyx pppp

Tzyx dddT

38

Escalares Consideramos escalares os números reais

Operações sobre escalares: Adição

Multiplicação

Propriedades destas operações Comutatividade

Associatividade

Distributividade

Identidade Escalar Da adição (0)

Da multiplicação (1)

Inversos Escalar Da adição (-α)

Da multiplicação (α-1)

𝛼, 𝛽 ∈ 𝑅

𝛼 + 𝛽 = 𝛽 + 𝛼

𝛼 ∙ 𝛽 = 𝛽 ∙ 𝛼

𝛼 + 𝛽 + 𝛾 = (𝛼 + 𝛽) + 𝛾

𝛼 ∙ 𝛽 + 𝛾 = 𝛼 ∙ 𝛽 + 𝛼 ∙ 𝛾

𝛼 ∙ 𝛽 ∙ 𝛾 = (𝛼 ∙ 𝛽) ∙ 𝛾

𝛼 + 0 = 𝛼

𝛼 ∙ 1 = 𝛼

𝛼 + (−𝛼) = 0

𝛼 ∙ 𝛼−1 = 1

39

Vectores no Espaço Euclideano

Espaço Euclideano contém escalares e vectores

Vectores têm as seguintes operações (neste espaço)

Soma de vectores

Multiplicação de escalar por vector

Produto interno

Produto externo

Não se pode somar um escalar a um vector!

Não se multiplicam vectores (só matrizes)

40

VectoresConhecimentos Básicos

Vector descreve um comprimento e uma direcção

Não esquecer:

Vector unitário é um vector de comprimento 1

Ta 232

3

a

41

VectoresConhecimentos Básicos

1

1aa

Pergunta:

Vector é unitário?

42

VectoresConhecimentos Básicos

a

a

y

xa

a

22

aa yxa

Comprimento do vector?

43

VectoresConhecimentos Básicos

ab

ba a

b

ab

abba

zz

yy

xx

z

y

x

z

y

x

ba

ba

ba

b

b

b

a

a

a

44

VectoresConhecimentos Básicos

a

z

y

x

z

y

x

ka

ka

ka

a

a

a

k

ak k escalar

45

VectoresConhecimentos Básicos

a

z

y

x

z

y

x

ka

ka

ka

a

a

a

k

ak 0kk escalar

46

Produto Interno (dot product)

a

b

cosbaba

baba yyxxba Ou melhor:

47

Produto Externo

48

Produto Externo

xyyx

zxxz

yzzy

baba

baba

baba

ba

sinbaba

49

Produto Externo

zyx

zyx

bbb

aaa

zyx

ba det

sinbaba

50

Produto Externo

Regra da mão direita

51

Produto Externo

Regra da mão esquerda

52

Atenção!

𝑎𝑏𝑐∙𝑑𝑒𝑓

É produto interno de dois vectores!

Não é multiplicação de vectores!

𝑎𝑏𝑐×

𝑑𝑒𝑓

É produto externo de dois vectores!

Não é multiplicação de vectores!

𝑎𝑏𝑐+ 𝑑 Se d for escalar, isto não existe!

53

Espaço CartesianoMatemática para CG

54

Base Ortonormada

Manipulação de sistemas de coordenadas é uma das

tarefas base de computação gráfica

Sistemas de coordenadas são bases ortonormadas

Base ortonormada em 3D

Formada por três vectores unitários ortogonais entre si

1 wvu

0 wuwvvu

vuw

55

Espaço Cartesiano

56

Base Ortonormada Cartesiana

57

Base Ortonormada Cartesiana

Existe uma origem implícita

A localização O e os vectores x, y e z não são explicitamente

representados

58

Plano

Superfície bidimensional planar

Definido por

Três pontos

Dois vectores

• Dois vectores no plano

• Um vector no plano e outro normal ao plano

Um ponto e um vector normal

59

Polígono

Figura geométrica definida através de

lista de vértices ligados entre si por

segmentos de linha

60

Polígonos Regulares

Polígonos convexos com lados iguais

61

Sólido

Definição formal

Figura tridimensional que representa uma porção do

espaço limitada pelas suas superfícies

Kern and Bland, 1948

62

Sólidos Regulares

Figuras geométricas:

faces são definidas por polígonos regulares idênticos

mesmo número de faces a convergir em cada vértice

Tetratedro Cubo Octaedro Dodecaedro

63

TrigonometriaEnquadramento e Conceitos Fundamentais

64

TrigonometriaConhecimentos básicos

grausradianos

radianosgraus

180

180

2

65

TrigonometriaConhecimentos básicos

66

TrigonometriaConhecimentos básicos

h

a

o

)cos(cos

)sin(sin

tan

cos

sin

ao

ha

ho

?cos

?sin

?tan

?cos

?sin

67

MatrizesEnquadramento e Conceitos Fundamentais

68

Matrizes

Operações matrizes intensamente usadas em CG

Revejam com atenção esta matéria (Álgebra Linear)

Pratiquem a multiplicação de matrizes

69

Multiplicação de Matrizes

𝐴𝐵 =

𝑎11 … 𝑎1𝑚⋮ ⋱ ⋮

𝑎𝑛1 … 𝑎𝑛𝑚

𝑏11 … 𝑏1𝑖⋮ ⋱ ⋮

𝑎𝑚1 … 𝑎𝑚𝑖

𝐴𝐵 =𝑎11 𝑎12 𝑎13𝑎21 𝑎22 𝑎23

𝑏11 𝑏12 𝑏13𝑏21 𝑏22 𝑏23

𝐴𝐵 =𝑎11 𝑎12 𝑎13𝑎21 𝑎22 𝑎23

𝑏11 𝑏12 𝑏13𝑏21 𝑏22 𝑏23𝑏31 𝑏32 𝑏33

70

Multiplicação de Matrizes

Não é comutativa

É associativa

𝐴𝐵 =

𝑎11 … 𝑎1𝑚⋮ ⋱ ⋮

𝑎𝑛1 … 𝑎𝑛𝑚

𝑏11 … 𝑏1𝑖⋮ ⋱ ⋮

𝑎𝑚1 … 𝑎𝑚𝑖

𝐴𝐵 ≠ 𝐵𝐴

𝐴𝐵𝐶 = 𝐴𝐵 𝐶 = 𝐴(𝐵𝐶)

71

Multiplicação de Matrizes

2,21,2

2,11,1

2,21,2

2,11,1

2,21,2

2,11,1

cc

cc

bb

bb

aa

aa

AB

n

r

jrriji bac1

,,,

72

Multiplicação de Matrizes

?

01

12

13

131

201

73

Multiplicação de Matrizes

?

01

12

13

131

201

74