enquadramento e conceitos fundamentais - ulisboa...(localização, cor e profundidade) 25...

64
Enquadramento e Conceitos Fundamentais Edward Angel, Cap. 1 1

Upload: others

Post on 15-Dec-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Enquadramento e

Conceitos Fundamentais

Edward Angel, Cap. 1

1

Page 2: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Introdução à Computação Gráfica

Enquadramento e Conceitos Fundamentais

2

Page 3: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Uso de computadores para criação e

manipulação de imagens

O que é Computação Gráfica?

Shirley etal. 2009

Preocupa-se com todos os aspectos da

produção de imagens usando computadores

Edward Angel, 2009

3

Page 4: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Imagens Raster

Imagem: array de pixels (picture elements)

4

Page 5: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Como se cria uma imagem?

… isto em CG.

5

Page 6: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Como se cria uma imagem?

No mestrado!!!

6

Page 7: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Áreas da Computação Gráfica

Modelação (modelling)

Representação (rendering)

Animação (animation)

7

Page 8: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

+ Áreas da Computação Gráfica

Interacção Pessoa-Máquina (Human-Computer Interaction)

Realidade Virtual (Virtual Reality)

Visualização (Visualization)

....

8

Page 9: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Sistemas Gráficos Interactivos

SketchPAD (1963) IBM2250 (1964)

9

Page 10: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Sistemas Gráficos Interactivos

Xerox STAR (1981) Apple Lisa (1983)

10

Page 11: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Sistemas Gráficos Interactivos

PC com Windows 3.1 (1992) Silicon Graphics Indigo2 (1993)

11

Page 12: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Sistemas Gráficos Interactivos

Razor Blade R2 - Gaming Laptop Apple iWatch

Actualmente …

… o modelo original mantém-se válido:

conceptualmente correcto

funcionalmente aplicável12

Page 13: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Modelo conceptual de

Sistema Gráfico Interactivo

13

Page 14: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Sistema Gráfico InteractivoPerspectiva de Hardware

14

Page 15: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Conceitos BásicosEnquadramento e Conceitos Fundamentais

15

Page 16: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Como criar imagens sintéticas?

16

Page 17: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Como criar imagens sintéticas?

Pode usar-se abordagem física:

Ray-Tracing e/ou Radiosidade(lento) (muito lento)

17

Page 18: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Abordagens Físicas

Alta Qualidade dos Resultados

Lentas (ou muito lentas)

Pouco Práticas para Computação Gráfica Interativa

18

Page 19: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Abordagem Prática

Processar objectos um de cada vez,

conforme são gerados pela aplicação

Pipeline Gráfico

(todos os andares implelentados em hardware na placa gráfica)

19

Page 20: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Processamento de Vértices

Converte representações dos objectos

de um sistema de coordenadas para outro

Mundo >> Camâra >> Dispositivo

Determina cores dos vértices

20

Page 21: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Projecção

Combina informação da câmara com a dos objectos

para produzir imagem 2D

Projecção perspectiva: raios de projecção convergentes

Projecção ortogonal: raios de projecção paralelos

21

Page 22: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Assemblagem de Primitivas

Vértices são associados às suas primitivas

antes de se realizar o recorte

Segmentos de recta, polígonos, curvas e superfícies

22

Page 23: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Recorte

Objectos fora do volume de visualização

são recortados da cena

23

Page 24: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Discretização

Se objecto fica na cena, devem ser associadas cores

aos pixéis correspondentes no frame buffer

Discretizador produz conjunto de fragmentos

para cada objecto

24

Page 25: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Discretização

Fragmentos são “pixéis potenciais” com

atributos cor e profundidade

Atributos dos vértices interpolados

para determinar atributos dos fragmentos

(localização, cor e profundidade)

25

Page 26: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Processamento de Fragmentos

Atributos dos fragmentos usados para determinar a

cor do pixel correspondente no frame buffer

Fragmentos podem ocultar outros

mais distantes da câmara

26

Page 27: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

API Gráfica

27

Page 28: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

API Gráfica

Componente chave de um sistema gráfico

Colecção de funções para realizar operações básicas

Desenhar Imagens Sintéticas

Representar Objectos 3D

Animar Cenas

...

28

Page 29: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Como criar imagens sintéticas?

Através da API especificam-se

Objectos, Materiais, Câmaras e Fontes de Luz

29

Page 30: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Especificar Objectos

APIs suportam

conjunto limitado de primitivas

Objectos definidos

pela sua localização no espaço ou

pelos seus vértices

30

Page 31: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Especificar um Triângulo(à antiga)

glBegin(GL_POLYGON)

glVertex3f(0.0, 0.0, 0.0);

glVertex3f(0.0, 1.0, 0.0);

glVertex3f(0.0, 0.0, 1.0);

glEnd( );

Tipo de objecto

Localização dos vértices

31

Page 32: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Especificar um Triângulo(usando GPU)

1. Colocar informação geométrica num array

2. Enviar array para o GPU

3. Ordenar ao GPU para renderizar um triângulo

vec3 points[3];

points[0] = vec3(0.0, 0.0, 0.0);

points[1] = vec3(0.0, 1.0, 0.0);

points[2] = vec3(0.0, 0.0, 1.0);

32

Page 33: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Especificar Câmaras

Posição do centro de projecção

Orientação da câmara

Campo de visualização

Dimensão da janela

33

Page 34: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Especificar Fontes de Luz

34

Page 35: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Especificar Materiais

Reflexão Ambiente Difusa e Especular

35

Page 36: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Pipeline Gráfico

Frame

Primitivas

Câmara

Fontes de Luz

36

Page 37: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Frame

Animação:

representação sequencial de imagens estáticas(tal como no cinematógrafo de Lumiére em 1890)

37

Page 38: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Animação

38

Page 39: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Animação em CG

Gerar sequência de frames

Desempenho dado por fps

Quanto mais, melhor… min. 25fps

39

Page 40: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Computação Gráfica Interactiva

Mais que gerar frames em tempo real…

dar ao utilizador o controlo

Resultado produzido depende do input do utilizador

?Edward Angel, Cap. 2

40

Page 41: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

E agora…

41

Page 42: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Breve Introdução ao three.jsEnquadramento e Conceitos Fundamentais

42

Page 43: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

43

Page 44: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

44

Page 45: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

45

Page 46: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

46

Page 47: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

three.jsBiblioteca JavaScript API Gráfica

47

Page 48: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Editor

Notepad++(apenas Windows)

Brackets (apenas Mac)

Sublime Text Editor(OS X, Windows, Linux)

WebStorm -- pago --(OS X, Windows, Linux)

... ou outro da vossa preferência

48

Page 49: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Debugging

49

Page 50: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Debugging (em Chrome)

50

Page 51: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Obter o three.js

descarregar versão completa da página oficial

http://threejs.org/

(não recomendado, a menos que estejam a pensar trabalhar offline)

51

Page 52: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Obter o three.js

descarregar apenas um ficheiro Javascript

three.js ou three.min.js

https://github.com/mrdoob/three.js/tree/master/build

52

Page 53: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Criar pastas e ficheiros

CG

exemplo

js

exemplo.html

53

Page 54: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Criar pastas e ficheiros

js

three.js exemplo.js

54

Page 55: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

exemplo.html

55

Page 56: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

exemplo.js

56

Page 57: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

exemplo.js

57

Page 58: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

exemplo.js

58

Page 59: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

exemplo.js

59

Page 60: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Ciclo Update/Display

60

Page 61: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

exemplo.js

Update

Display

61

Page 62: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

exemplo.html

62

Page 64: Enquadramento e Conceitos Fundamentais - ULisboa...(localização, cor e profundidade) 25 Processamento de Fragmentos Atributos dos fragmentos usados para determinar a cor do pixel

Na próxima aula

Programação baseada em acontecimentos

Teoria e modelos de cor

Matemática para CG

Trabalho dos laboratórios deste ano

Edward Angel, Cap. 2

64