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

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

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

Apresentações semelhantes


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

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

2 Objetivos Estudar Para
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 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 6.1 Luz e Matéria Superfície pode ser Emissora de luz Refletora de luz
Superfície de uma lâmpada Refletora de luz Emissora e refletora de luz Ferro em brasa

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

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

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 6.2 Fonte Luminosa (A25) 6.2.0 Introdução
Função de iluminação: I(x, y, z, q, f, l) x, y, z: posição da fonte (q, f): direção de emissão l : comprimento de onda emitido Contribuição total da fonte para iluminação da superfície

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

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

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

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

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

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

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

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

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

19 6.3 O Modelo de Reflexão de Phong
6.3.0 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 6.3 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 6.3 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 6.3 O Modelo de Reflexão de Phong
Considerando o operador tal que C = B  Cij = Aij Bij (não há somatório) I = Ia + Id + Is = + +

23 6.3 O Modelo de Reflexão de Phong
6.3.1 Reflexão ambiente Ia = Ra La = ka La 0  ka  1 ka = (kar, kag, kab) kar= 1.0 kag= 0.0 kab= 0.0 Lar= 1.0 Lag= 1.0 Lab= 1.0 Iar= 1.0 Iag= 0.0 Iab= 0.0

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

25 6.3 O Modelo de Reflexão de Phong
Lei de Lambert Rd  cos f q0 p

26 6.3 O Modelo de Reflexão de Phong
6.3.3 Reflexão especular Intensidade na direção do observador Decai quando f cresce: Is = ks Ls (cos f)m Is = ks Ls (r · v)m r v l f

27 6.3 O Modelo de Reflexão de Phong
6.3.4 Modelo completo a = m

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

29 6.4 Cálculo dos Vetores Dados 3 pontos em um plano n p2 p0 p1
Observação: O vetor obtido precisa ser normalizado

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

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

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

33 6.4 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 6.4 Cálculo dos Vetores 6.4.2 Ângulo de reflexão l r n (l . n)
7 multiplicações 5 adições

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

36 6.4 Cálculo dos Vetores 6.4.3 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: 2y = f 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 6.4 Cálculo dos Vetores 6.4.4 Luz transmitida Lei de Snell
Obter t como t = a (-l) + b (-n) t = – a l – b n ||t|| = 1 l n -n t ql qt a b Meio l Meio t

38 6.4 Cálculo dos Vetores

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

40 6.5 Coloração de polígonos
6.5.1 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 6.5 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 6.5 Coloração de polígonos
6.5.2 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 6.5 Coloração de polígonos
Cálculo das normais em um vértice da malha

44 6.5 Coloração de polígonos
6.5.3 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 6.5 Coloração de polígonos
Utilizar interpolação bilinear

46 6.6 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 6.6 Aproximação de uma esfera por subdivisão recursiva
Processo recursivo B C A AB BC AC Código Fonte Código Exec

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

49 6.7 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 6.7 Fontes Luminosas no OpenGL
Número de fontes em um programa Limitado em oito fontes GL_LIGHT0 GL_LIGHT1 GL_LIGHT2 GL_LIGHT7

51 6.7 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 6.7 Fontes Luminosas no OpenGL
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);

53 6.7 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 6.7 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 6.7 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 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 GL_EMISSION (0.0, 0.0, 0.0, 1.0) GL_COLOR_INDEX (0, 1, 1) [Default]

57 6.8 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 6.8 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 6.8 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 6.8 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 6.8 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 6.9 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 6.10 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 6.10 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 6.10 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 "CRAb – Grupo de Computação Gráfica Departamento de Computação UFC"

Apresentações semelhantes


Anúncios Google