Métodos de surface-rendering
2
• O fotorealismo envolve:
4
Fontes de luz
• São objectos que radiam luz e contribuem para iluminar os objectos da cena
- Posição
- Direcção de emissão
- Forma
5
Fontes de luz (simplificadas)
6
Fontes de luz mais sofisticadas
7
Fontes de luz ainda mais sofisticadas
8
Efeitos de iluminação das superfícies
- grau de transparência
- parte é reflectida
9
10
• A quantidade de luz reflectida depende das características da superfície
11
• As superfícies rugosas tendem a espalhar a luz reflectida em todas as
direcções
-reflexão difusa
12
• Outro factor a considerar num modelo de iluminação é a
- Iluminação ambiente
13
Modelos de iluminação básicos
- iluminação ambiente
- reflexão difusa
- reflexão especular
14
Iluminação ambiente
cos ΦN
α = const.
dA cos ΦN
16
• A iluminação ambiente, isoladamente, produz resultados pouco
interessantes na representação de uma cena
I ambdiff = Kd Ia
17
• Em geral, inclui-se pelo menos uma fonte de
luz (frequentemente no ponto de vista)
18
Área projectada
• Sendo θ o ângulo de incidência (entre a direcção
da luz e a normal à superfície)
N normal à superfície
L direcção de uma fonte de luz
se
se
19
Reflexão difusa numa esfera iluminada por uma fonte pontual
branca com 0< Kd <1 e sem iluminação ambiente (Ka = 0)
se
se
20
Iluminação
ambiente
21
Reflexão difusa
Reflexão especular e o modelo de Phong
22
• Objectos que não sejam reflectores ideais apresentam reflexões especulares
numa gama finita de direcções em torno do vector R
23
Com reflexão difusa Com reflexão difusa e especular
24
Superfície menos brilhante
26
• Pode-se calcular cos Φ a partir do produto escalar dos versores V·R
ou
28
Sem iluminação ambiente, uma fonte de luz move-se em torno da esfera
29
Reflexões difusas e especulares
• Quando existe uma única fonte de luz pontual, a combinação dos três
efeitos:
- iluminação ambiente
- reflexão difusa Múltiplas fontes de várias cores:
- reflexão especular
30
Considerações quanto à cor
31
• No modelo de Phong original Ks é constante
e independente da cor da superfície
32
Modelo de iluminação mais sofisticado
33
OpenGL – Lighting
• Distância ao observador
glLightModeli( GL_LIGHT_MODEL_LOCAL_VIEWER,
GL_FALSE );
Default! Porquê?
• Activar / Desactivar
glEnable( GL_LIGHTING );
36
OpenGL – Light Sources
glEnable( GL_LIGHT0 );
37
OpenGL – Light Sources
• Exemplo: “spotlight”
…
GLfloat spot_direction[] = { -1.0, -1.0, 0.0 };
glLightfv(GL_LIGHT1, GL_AMBIENT, light1_ambient);
glLightfv(GL_LIGHT1, GL_DIFFUSE, light1_diffuse);
glLightfv(GL_LIGHT1, GL_SPECULAR, light1_specular);
glLightfv(GL_LIGHT1, GL_POSITION, light1_position);
…
glLightf(GL_LIGHT1, GL_CONSTANT_ATTENUATION, 1.5);
glLightf(GL_LIGHT1, GL_LINEAR_ATTENUATION, 0.5);
…
glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 45.0);
glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION,
spot_direction);
glLightf(GL_LIGHT1, GL_SPOT_EXPONENT, 2.0);
glEnable( GL_LIGHT1 );
38
OpenGL – Material Properties
• Diferentes propriedades / coeficientes
GLfloat no_mat[] = { 0.0, 0.0, 0.0, 1.0 };
GLfloat mat_ambient[] = { 0.7, 0.7, 0.7, 1.0 };
GLfloat mat_ambient_color[] = { 0.8, 0.8, 0.2, 1.0
};
GLfloat mat_diffuse[] = { 0.1, 0.5, 0.8, 1.0 };
GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
39
OpenGL – Material Properties
40
OpenGL – Material Properties
• Bules de diferentes
“materiais”:
– Esmeralda, jade, …
– Latão, bronze, …
– Plástico
– Borracha
42
Transparência
- com refracção
Objecto
transparente
43
Direcção de
• Para se obter maior realismo é necessário Para a fonte de luz reflexão
considerar a refracção da luz
vidro
44
Direcção de
Para a fonte de luz reflexão
• O índice de refracção varia com vários factores:
- λ da luz
- temperatura do material
- direcção (em materiais anisotrópicos)
-…
Direcção
de refracção
vácuo / ar - 1.00
gelo - 1.31
água - 1.33
vidro vulgar - 1.52
quartzo - 1.54
45
• Pode-se calcular T (vector unitário na direcção
de refracção):
ar
• O efeito geral da passagem de luz através de uma ar
lâmina de vidro é um raio emergente paralelo ao vidro
incidente
O raio emergente é
paralelo ao raio incidente
46
• Na maioria das aplicações usam-se aproximações menos realistas e
mais rápidas
Objecto
no fundo
Objecto
• Esta aproximação: transparente
47
Objecto no
• Pode-se combinar a luz transmitida através de fundo
uma superfície transparente com a luz reflectida
pela superfície:
Objecto
transparente
- coeficiente de transparência [0, 1]
1- totalmente transparente Plano de projecção
0- totalmente opaco
48
Sombras Direcção da luz
incidente
49
Exemplo: Sombras devidas
50
Métodos de Rendering de Polígonos (Shading)
51
Métodos de Rendering de Polígonos (Shading)
Método de Gouraud
Método de Phong
52
Surface rendering de intensidade constante (Flat-Shading)
• É simples e rápido !
53
• Em geral, o flat-shading é adequado quando se verificam todas as
condições seguintes:
54
Método de Gouraud ou de interpolação de intensidades
• Foi desenvolvido, por Henri Gouraud, para fazer o rendering de um objecto curvo
aproximado por uma malha poligonal
• Faz uma transição suave dos valores de intensidade entre polígonos adjacentes
estimando, para cada vértice, um vector normal “médio”
55
• Cada face poligonal de uma malha que aproxima uma superfície curva é
processada da seguinte forma:
1 2 3 56
Transições mais suaves
57
Método de Phong ou de interpolação de normais
• É mais sofisticado que o anterior, foi desenvolvido, por Phong Bui Tuong
(1975)
58
• Cada secção poligonal de uma malha que aproxima uma superfície curva é
processada da seguinte forma:
Phong
59
Flat Gouraud
Phong
Highlights melhorados
60
OpenGL - Shading
glShadeModel( GL_FLAT );
glShadeModel( GL_SMOOTH );
62
Métodos de iluminação global
63
• Adicionalmente, podem lançar-se raios secundários reflectidos ou transmitidos
Raios secundários
Pixel no plano de
visualização
Centro de projecção
64
Pixels com intensidade não atribuída (a cinzento)
2 3
4 65
Maior transparência
50% 100%
transparente transparente
100% 100%
opaca reflectora
66
Maior reflexão
Representação de imagens com baixa resolução tonal
2 níveis
Notem-se os falsos
contornos nas imagens
de baixa resolução
4 níveis
67
8 níveis
Halftoning
68
• Em Computação Gráfica usam-se padrões de pixels:
69
Máscara geradora do padrão de 3x3 – um nível k obtém-se
Iluminando os pixels correspondentes aos nºs ≤ k
70
• Devem evitar-se padrões simétricos
a evitar melhor
• Devem evitar-se padrões com pixels isolados que não podem ser reproduzidos
por certos dispositivos
71
• Pode usar-se halftoning para aumentar a resolução de:
- dispositivos a cores
72
halftoning em imagens a cores
73
Principal bibliografia
74