A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC.

Apresentações semelhantes


Apresentação em tema: "Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC."— Transcrição da apresentação:

1 Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

2 2 Objetivos Estudar –equipamentos, técnicas de programação e conceitos matemáticos Para –representação, manipulação e projeção de objetos bi- e tridimensionais –aplicar a problemas específicos

3 3 Sumário do Curso Sistemas Gráficos e Modelos Programação Gráfica Input e Interação Objetos Geométricos e Transformações Visualização Pintura Técnicas Discretas Implementação de um Renderizador

4 Pintura (Shading)

5 5 6.1 Luz e Matéria Superfície pode ser –Emissora de luz Superfície de uma lâmpada –Refletora de luz –Emissora e refletora de luz Ferro em brasa

6 6 6.1 Luz e Matéria Luz chegando a uma superfície é resultado de múltiplas interações

7 7 6.1 Luz e Matéria Equação de renderização –i(p, p): intensidade sai de p chega a p (p,p): parte emitida diretamente por p i(p, p): intensidade de p chegando a p (p, p, p): função de reflexão de p – (p, p): função de oclusão = 0 se objeto opaco estiver no caminho = 1/r 2 fator de atenuação da distância

8 8 6.1 Luz e Matéria Classificação da interação luz/material –Superfícies especulares –Superfícies difusas –Superfícies translúcidas

9 9 6.2 Fonte Luminosa (A25) Introdução –Função de iluminação: I(x, y, z,,, ) x, y, z: posição da fonte (, ): direção de emissão : comprimento de onda emitido –Contribuição total da fonte para iluminação da superfície

10 Fonte Luminosa (A25) –Tipos de fontes Luz ambiente Luz pontual Luz spot Luz distante

11 Fonte Luminosa (A25) Fontes de cores –Modelo do sistema visual humano Modelo tricromático (R, G, B) –Utilizar a função de luminância

12 Fonte Luminosa (A25) Luz ambiente –Representa a iluminação uniforme do ambiente Cozinhas, salas de aula, dias nublados –Utilizar a intensidade

13 Fonte Luminosa Fonte pontual –Emite luz uniformemente em todas as direções –Tem Intensidade e localização

14 Fonte Luminosa Fonte pontual... –Gera sombras duras –Fonte de tamanho finito gera regiões de penumbra e umbra

15 Fonte Luminosa Fonte pontual... –Atenuar efeito de iluminação com a distância Utilizar fator 1/(a + b*d + c*d 2 )

16 Fonte Luminosa (A25) Spotlights –Uniforme: Não há diferença de intensidade na área iluminada Exceto pela distância do ponto iluminado à fonte (d1 e d2)

17 Fonte Luminosa Spotlights –Não-uniforme: Intensidade concentra na direção l e decai com o afastamento angular dessa direção I = (cos ) e = ( l. s) e l s

18 Fonte Luminosa (A25) Fontes luminosas distantes –Importa apenas a direção de iluminação e intensidade de iluminação D

19 O Modelo de Reflexão de Phong Introdução –Modelo simplificado Eficiência computacional Bom realismo sob –Condições de iluminação variadas –Materiais diferentes Usa 4 vetores unitários –n: normal à superfície –l: do ponto iluminado à fonte –r: reflexão de l (Euclides) –v: do ponto iluminado ao observador

20 O Modelo de Reflexão de Phong Suporta os 3 tipos de interação luz/material –Ambiente –Difusa –Especular Cada fonte i contém as 3 intensidades

21 O Modelo de Reflexão de Phong As reflectividades do material j para cada um dos 3 tipos de interação –Representam quanto de uma dada componente é refletida

22 O Modelo de Reflexão de Phong Considerando o operador tal que –C = B C ij = A ij B ij (não há somatório) –I = I a + I d + I s = L a + L d + L s

23 O Modelo de Reflexão de Phong Reflexão ambiente –I a = R a L a = k a L a –0 k a 1 –k a = (k ar, k ag, k ab ) k ar = 1.0 k ag = 0.0 k ab = 0.0 L ar = 1.0 L ag = 1.0 L ab = 1.0 I ar = 1.0 I ag = 0.0 I ab = 0.0

24 O Modelo de Reflexão de Phong Reflexão difusa –Superfícies Lambertianas Superfície rugosa

25 O Modelo de Reflexão de Phong –Lei de Lambert R d cos q0q0 q0q0 pp

26 O Modelo de Reflexão de Phong Reflexão especular –Intensidade na direção do observador Decai quando cresce: I s = k s L s (cos ) m I s = k s L s (r · v) m r v l

27 O Modelo de Reflexão de Phong Modelo completo = m

28 Cálculo dos Vetores Vetores normais –Dada a equação do plano

29 Cálculo dos Vetores –Dados 3 pontos em um plano p0p0 p2p2 p1p1 n Observação: O vetor obtido precisa ser normalizado

30 Cálculo dos Vetores –Dada a equação implícita da superfície Observação: O vetor obtido pelo gradiente da função precisa ser normalizado Esfera em (xc,yc,zc)

31 Cálculo dos Vetores –Dada a equação paramétrica da superfície Observação: O vetor n precisa ser normalizado

32 Cálculo dos Vetores –Equação paramétrica da esfera de r=1 centrada na origem - /2 < u < /2 - < v < z y x u v p normalizado

33 Cálculo dos Vetores –Especificação de um vetor normal em OpenGL GLfloat n[3]; glNormal3f(n[0], n[1], n[2]); // nx, ny, nz ou glNormal3fv(n); // ponteiro para of vetor n

34 Cálculo dos Vetores Ângulo de reflexão lr n (l. n) 2(l. n) 7 multiplicações 5 adições

35 Cálculo dos Vetores Uso do vetor h (Halfway) –Usado em vez de r no cálculo da reflexão especular 3 multiplicações 5 adições 1 raiz quadrada 3 divisões l n h r v

36 Cálculo dos Vetores Uso do vetor h (Halfway) –Só vale a pena se a fonte estiver longe e o observador estiver longe h é o mesmo para todo ponto do cenário r não é o mesmo para todo ponto do cenário –Se o observador estiver no mesmo plano que contém l e n: 2 = Utilizando n·h em vez de r·v com o mesmo expoente m produz um specular hilight menor Modificar o expoente m para m

37 Cálculo dos Vetores Luz transmitida –Lei de Snell –Obter t como t = a (-l) + b (-n) t = – a l – b n ||t|| = 1 l n -n t l t a b Meio l Meio t

38 Cálculo dos Vetores

39 Coloração de polígonos Introdução –Três maneiras de atribuir cor ponto a ponto Flat shading Gouraud shading Phong shading –Exemplo: Colorir a malha poligonal

40 Coloração de polígonos Coloração homogênea:Flat Shading –Modelo de Phong retorna mesma intensidade para qualquer ponto v=constante: observador no infinito l=constante: fonte de luz no infinito n=constante: polígono plano –No OpenGL glShadeModel(GL_FLAT);

41 Coloração de polígonos –Inibição lateral Propriedade do sistema visual humano Percebe pequenas diferenças em intensidade luminosa Bordas fictícias são criadas: Mach bands

42 Coloração de polígonos Coloração por interpolação e de Gouraud –Intensidade calculada pelo modelo de iluminação de Phong nos vértices do polígono –Depois de projetados os polígonos Pontos interiores são coloridos por interpolação das intensidades dos vértices –No OpenGL glShadeModel(GL_SMOOTH);

43 Coloração de polígonos –Cálculo das normais em um vértice da malha

44 Coloração de polígonos Coloração de Phong –Normais são calculadas nos vértices –Polígono é projetado –Normais nos pontos interiores são interpoladas a partir das normais nos vértices –Intensidade é calculada ponto a ponto com as normais interpoladas

45 Coloração de polígonos –Utilizar interpolação bilinear

46 Aproximação de uma esfera por subdivisão recursiva Processo recursivo –Construir tetraedro Quatro faces triangulares ligando 4 vértices em uma superfície esférica –Calcular ponto central de cada face –Normalizar pontos centrais Pontos irão para a superfície esférica –Criar três novos triângulos ligando vértices do triângulo ao seu ponto central

47 Aproximação de uma esfera por subdivisão recursiva Processo recursivo Código Fonte Código Exec B C A A BC AB BC AC

48 Aproximação de uma esfera por subdivisão recursiva Processo recursivo B C A A BC D

49 Fontes Luminosas no OpenGL Tipos de fontes –Ambiente –Direcional (localizada no infinito) (xd, yd, zd, 0) –Pontual Localizada em um ponto próximo: (xp,yp,zp,wp) Irradia em todas as direções –Spot Localizad em um ponto próximo: (xs, ys, zs, ws) Apontada em uma direção principal Limitada lateralmente por um cone

50 Fontes Luminosas no OpenGL Número de fontes em um programa –Limitado em oito fontes GL_LIGHT0 GL_LIGHT1 GL_LIGHT2 … GL_LIGHT7

51 Fontes Luminosas no OpenGL Definir uma fonte de luz (ex: luz 1) –Habilitar iluminação glEnable(GL_LIGHTING); –Especificar os valores das propriedades GLfloat L1_ambiente[]={0.3, 0.3, 0.3, 1.0}; GLfloat L1_difusa[]={1.0, 1.0, 1.0, 1.0}; GLfloat L1_especular[]={1.0, 1.0, 1.0, 1.0}; GLfoat L1_posicao[]={-2.0, 2.0, 1.0, 1.0}; GLfloat spot_dir []={-1.0, -1.0, 0.0}; –Utilizar os comandos do OpenGL para associar essas propriedades à GL_LIGHT1

52 52 glLightfv( GL_LIGHT1, GL_AMBIENT, L1_ambiente ); glLightfv( GL_LIGHT1, GL_DIFFUSE, L1_difusa ); glLightfv( GL_LIGHT1, GL_SPECULAR, L1_especular ); glLightfv( GL_LIGHT1, GL_POSITION, L1_posicao ); glLightf( GL_LIGHT1, GL_CONSTANT_ATTENUATION, 1.5 ); glLightf( GL_LIGHT1, GL_LINEAR_ATTENUATION, 0.5 ); glLightf( GL_LIGHT1, GL_QUADRATIC_ATTENUATION, 0.2 ); glLightf( GL_LIGHT1, GL_SPOT_CUTOFF, 45.0 ); glLightfv( GL_LIGHT1, GL_SPOT_DIRECTION, spot_dir ); glLightf( GL_LIGHT1, GL_SPOT_EXPONENT, 2.0 ); glEnable( GL_LIGHT1 ); 6.7 Fontes Luminosas no OpenGL

53 Fontes Luminosas no OpenGL Estabelecer um modelo de iluminação –Três componentes Intensidade da iluminação ambiente global Considerar o observador próximo ao cenário ou no infinito? Cálculo da iluminação deve ser diferente para os dois lados de uma face? –Usar o comando glLightModel*();

54 Fontes Luminosas no OpenGL Estabelecer um modelo de iluminação –Iluminação ambiente global GLfloat luz_ambiente_global[]={0.2, 0.2, 0.2, 1.0); glLightModelfv(GL_LIGHT_MODEL_AMBIENT, luz_ambiente_global); –Observador local ou no infinito glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE); Default: GL_FALSE (Observador no infinito)

55 Fontes Luminosas no OpenGL Estabelecer um modelo de iluminação –Iluminação em dois lados glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); Default: GL_FALSE (Somente uma face é iluminada)

56 56 [Default] 6.8 Especificação de Materiais/OpenGL Utilizar o comando glMaterial*() void glMaterial{if}[v](GLenum face, GLenum pname, TYPE param); face: GL_FRONT, GL_BACK, GL_FRONT_AND_BACK pname: GL_AMBIENT param:(0.2, 0.2, 0.2, 1.0) GL_DIFFUSE(0.8, 0.8, 0.8, 1.0) GL_AMBIENT_AND_DIFFUSE GL_SPECULAR(0.0, 0.0, 0.0, 1.0) GL_SHININESS 0.0 GL_EMISSION (0.0, 0.0, 0.0, 1.0) GL_COLOR_INDEX (0, 1, 1)

57 Especificação de Materiais/OpenGL Definir as propriedades do material i glFloat ka_i[]={0.2, 0.2, 0.2, 1.0}; glFloat kd_i[]={1.0, 0.8, 0.0, 1.0}; glFloat ks_i[]={1.0, 1.0, 1.0, 1.0}; Utilizar o comando glMaterial*() glMaterialfv(GL_FRONT, GL_AMBIENT, ka_i); glMaterialfv(GL_FRONT, GL_DIFFUSE, kd_i); glMaterialfv(GL_FRONT, GL_SPECULAR, ks_i); glMaterialf (GL_FRONT, GL_SHININESS, 100.0);

58 Especificação de Materiais/OpenGL Para superfícies emissoras de luz glFloat emissao[]={0.0, 0.3, 0.3, 1.0}; glMaterialfv(GL_FRONT, GL_EMISSION, emissao);

59 Especificação de Materiais/OpenGL Aspectos de programação –Toda mudança de material implica em um grande número de chamadas a glMaterial –Melhor escrever a seguinte função para trocar o material void materials(materialStruct *materials) { glMaterialfv(GL_FRONT, GL_AMBIENT, materials->ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, materials->diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, materials->specular); glMaterialf (GL_FRONT, GL_SHININESS, materials->shininess); }

60 Especificação de Materiais/OpenGL Aspectos de programação typedef struct {GLfloat ambient[4]; GLfloat diffuse[4]; GLfloat specular[4]; GLfloat shininess[4]; } materialStruct;

61 Especificação de Materiais/OpenGL Aspectos de programação –Bronze e Ouro materialStruct brassMaterial = { 0.33, 0.22, 0.03, 1.0, 0.78, 0.57, 0.11, 1.0, 0.99, 0.94, 0.81, 1.0, 27.89}; materialStruct goldMaterial = {0.25, 0.20, 0.07, 1.0, 0.75, 0.61, 0.23, 1.0, 0.63, 0.56, 0.37, 1.0, 51.2};

62 Coloração do Modelo da Esfera Habilitação de propriedades e testes glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST); glPolygonMode(GL_FRONT, GL_FILL); Atribuição do material ouro Definição da fonte de luz Desenho da esfera Código Fonte Código Exec

63 Coloração Global Modelo de iluminação local –Colore-se cada objeto independentemente Fonte de luz + objeto + observador Iluminação local Iluminação global

64 Coloração Global Modelo de iluminação global –Luz que chega ao olho do observador é oriunda de múltiplas reflexões e refrações –Ray-tracing: segue raio caminho inverso

65 Coloração Global Modelo de iluminação global –Radiosidade: balanço de energia no ambiente define a energia em cada superfície

66 Fim do capítulo 6


Carregar ppt "Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC."

Apresentações semelhantes


Anúncios Google