Aparência Visual - UNICAMP · Como aumentar o realismo? IA727 – 2s2014 Profa. Ting Como aumentar...

102
Aparência Visual IA727 – Segundo Semestre de 2014 Profa. Ting

Transcript of Aparência Visual - UNICAMP · Como aumentar o realismo? IA727 – 2s2014 Profa. Ting Como aumentar...

Aparência Visual

IA727 – Segundo Semestre de 2014

Profa. Ting

Aparência Fotorealista

IA727 – 2s2014Profa. Ting

Fontes LuminosasComposição Espectral

IR

IG

IB

RR

RG

RB

Fonte:Composição Espectral?Posição?Direção?Ângulo de abrangência?

Irradiância

I

sensor Radiância

Irradiância: quantidade de energia incidente sobre uma superfície por segundo, dentro de um ângulo sólido numa dada direção.

IA727 – 2s2014Profa. Ting

Iluminância

IA727 – 2s2014Profa. Ting

Fontes LuminosasFonte Direcional ou Distante

Direção paralela

IA727 – 2s2014Profa. Ting

Fontes LuminosasFonte Pontual

Direção radial

IA727 – 2s2014Profa. Ting

Fontes LuminosasFonte Spot (Warn)

θFeixe restrito num ângulo sólido

IA727 – 2s2014Profa. Ting

Fontes de Luz

Fonte de luz de área

Sombras suaves e duras

I

I

I

IA727 – 2s2014Profa. Ting

Material de Superfícies

Dielétricos

Condutores

Polidas Rugosas

Compostos (plástico)

http://www.cs.umbc.edu/~rheingan/435/pages/res/gen-11.Illum-single-page-0.html

IA727 – 2s2014Profa. Ting

Reflexão e Refração

“espalha”para outro lado

“espalha”para mesmo lado

IA727 – 2s2014Profa. Ting

ReflexãoComponentes: difusas e especulares

Uma abordagem simplista:Difusividade ↔ Composição do material Especularidade ↔ Rugosidade

IA727 – 2s2014Profa. Ting

Superfície em diferentes níveis de detalhe

IA727 – 2s2014Profa. Ting

Renderização dos Detalhes de uma Superfície

● Representação ● por dados geométricos

● por dados texturais

● Configuração dos parâmetros de iluminação

IA727 – 2s2014Profa. Ting

Sensores

http://electronics.howstuffworks.com/cameras-photography/tips/aperture.htm

radiância

IA727 – 2s2014Profa. Ting

Modelo Simplificado

Luz e sensor representados por pontos espaciais.

IA727 – 2s2014Profa. Ting

Reflexões Difusas

Intensidade luminosa refletida é diretamente proporcional ao coseno

do ângulo θ

φ=

φ=

Intensidade percebida pelo observador independe da sua

posição

Id = kd Id cos θ

IA727 – 2s2014Profa. Ting

Intensidade luminosa refletida é diretamente

proporcional à potência α do coseno do ângulo β

Is = ks Is (cosβ)α

(R)

Reflexões Especulares

IA727 – 2s2014Profa. Ting

Intensidade luminosa comum para todos os pontos do ambiente Ia = ka Ia

Multireflexões

IA727 – 2s2014Profa. Ting

Modelo de Iluminação Phong

Ip = kaIa + kd Id cosθ + ks Is (cosβ)α

N

L RV

βθ

cosθ = N.L /(|N||L|)cosβ = R.V /(|R||V|)

R = 2N(N.L) - L

Vetor Normal no cálculo da componente especular!!

http://www.cs.umbc.edu/~rheingan/435/pages/res/gen-11.Illum-single-page-0.html

Radiância

IA727 – 2s2014Profa. Ting

Modelo de Iluminação Blinn

Ip = kaIa + kd Id cosθ + ks Is (cosϕ)α’

Intensidade luminosa refletida é diretamente

proporcional à potência α’ do coseno do ângulo θ

Is = ks Is (cosϕ)α ’

ϕϕ

Vantagem: Quando a fonte luminosa e o observador forem distantes, H é constante.

IA727 – 2s2014Profa. Ting

Modelo de Iluminação Blinn

IA727 – 2s2014Profa. Ting

ambiente Modelo de PhongIp = kaIa + kd Id cosθ + ks Is (cosβ)α

Modelo de Iluminação Phong

IA727 – 2s2014Profa. Ting

ambiente Modelo de PhongIp = kaIa + kd Id cosθ + ks Is (cosβ)α

Modelo de Iluminação Phong

IA727 – 2s2014Profa. Ting

Modelo de Iluminação Phong

ambiente

difusa

Modelo de PhongIp = kaIa + kd Id cosθ + ks Is (cosβ)α

IA727 – 2s2014Profa. Ting

ambiente

difusa

especular

Modelo de PhongIp = kaIa + kd Id cosθ + ks Is (cosβ)α

Modelo de Iluminação Phong

ka + kd + ks = 1

IA727 – 2s2014Profa. Ting

Absorção: Função de Decaimento

Função de decaimento: a+br+cr2

IA727 – 2s2014Profa. Ting

Tonalização (Shading)Calcular as propriedades

gráficas ou geométricas em algumas amostras e propagá-las

para o restante dos pontos

Cópia (Flat shading) Interpolação (Gouraud shading)

IA727 – 2s2014Profa. Ting

Phong ShadingInterpolação linear de vetores normais

Na(t) = t N1 + (1-t) N2

Nb(t) = t N1 + (1-t) N4

TonalizaçãoInterpolação Linear de Vetores Normais

IA727 – 2s2014Profa. Ting

GOURAUD SHADING

Tonalização

IA727 – 2s2014Profa. Ting

Uma Implementação com GLSL● Frequência no cômputo da equação de iluminação:

● Por primitiva: flat shadingvertex shader: determina a cor em cada vértice.

pixel shader: a cor do provoking vertex é atribuída ao pixel.

● Por vértice: Gouraud shading (Exemplo 7.6 do RedBook)vertex shader: determina a cor em cada vértice.

pixel shader: a cor interpolada é atribuída ao pixel.

● Por pixel: Phong shading (Exemplo 7.5 do RedBook) vertex shader: determina a normal em cada vértice.

pixel shader: vetor normal interpolado é atribuído ao pixel.

http://www.geeks3d.com/20130514/opengl-interpolation-qualifiers-glsl-tutorial/

IA727 – 2s2014Profa. Ting

AmostragemEfeito de Borda Serrilhada

Por quê ocorrem estes efeitos?

IA727 – 2s2014Profa. Ting

Aliasing● espacial

● temporal

IA727 – 2s2014Profa. Ting

Amostragem

ImagemVetorial

ImagemDiscreta

ImagemPercebida

Amostragem Reconstrução/Filtragem

IA727 – 2s2014Profa. Ting

Filtro Retangular

https://mynameismjp.wordpress.com/2012/10/

IA727 – 2s2014Profa. Ting

Filtro Triangular

https://mynameismjp.wordpress.com/2012/10/

IA727 – 2s2014Profa. Ting

Filtro Sinc

https://mynameismjp.wordpress.com/2012/10/

IA727 – 2s2014Profa. Ting

Reamostragem● Magnificação (upsampling)

● Minificação (downsampling)

IA727 – 2s2014Profa. Ting

Transformada de Fourier 1D

Par de transformadas:

(Análise)

(Síntese)

f(x) e-j2πux dx

x

F(u)

F(u) ej2πux duf(x)

|F(u)|

u

Análise Fourier: revela a magnitude das

componentes periódicas

Síntese Fourier: constrói o sinal a partir das componentes

IA727 – 2s2014Profa. Ting

EA978 – 1s2009 - Ting

Aliasing

Amostragem 1D

Aliasing

Frequência de Nyquist: 2x frequência máxima

IA727 – 2s2014Profa. Ting

Reconstruçãodomínio espacial

domínio espectral

Filtro:Área unitária

IA727 – 2s2014Profa. Ting

http://pages.jh.edu/~signals/convolve/

Convolução

Amostragem e Reconstrução

IA727 – 2s2014Profa. Ting

Exibiçãodomínio espacial

domínio espectral

IA727 – 2s2014Profa. Ting

Duas AbordagensGeométrica: distribuição espacial das intensidades.

Espectral: distribuição espectral das intensidades.

IA727 – 2s2014Profa. Ting

Anti-aliasing de Linhas

Aumentar a taxa de amostragem– Ponderar o valor do pixel com o “fundo” – Linha fina com uma auréola

Reduzir a um problema de anti-aliasing de textura

IA727 – 2s2014Profa. Ting

Antialiasing baseado no espaço do dispositivo

superamostragem

IA727 – 2s2014Profa. Ting

Esquemas Variantes deSuperamostragem

IA727 – 2s2014Profa. Ting

Multiamostragem MSAA

https://mynameismjp.wordpress.com/2012/10/

Multisample Anti-Aliasing

IA727 – 2s2014Profa. Ting

Amostragem Estocástica

https://mynameismjp.wordpress.com/2012/10/

IA727 – 2s2014Profa. Ting

Filtragem

https://mynameismjp.wordpress.com/2012/10/

● Processo que altera a distribuição espectral (ω) de um sinal.

IA727 – 2s2014Profa. Ting

Antialiasing baseado em Filtragem

Função de Espalhamento Pontual

IA727 – 2s2014Profa. Ting

IA727 – 2s2014Profa. Ting

Refração

http://www.cs.umbc.edu/~rheingan/435/pages/res/gen-11.Illum-single-page-0.html

IA727 – 2s2014Profa. Ting

Uma Aproximação: Transparência

fator alfa

ou

Ordem dos objetos é importante: primeiro, os opacos; depois os menos transparentes para os mais transparentes.

Uso da função blending: GLSL● Efeito de transparência

● Composição de cenas

IA727 – 2s2014Profa. Ting

OpenGL

http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-10-transparency/

IA727 – 2s2014Profa. Ting

Monitores

L = KVγ

pixel

L: luminância em cada pixelK: constante, ajustado pelo controle de contraste V: tensão de excitação dos feixes de elétronsγ: gamma, tipicamente entre [1.4,2.5]V = Vs

(1/γ): correção gamma

IA727 – 2s2014Profa. Ting

Influência de γ

γ = 1.8 γ = 1.0

IA727 – 2s2014Profa. Ting

Correção de γ

IA727 – 2s2014Profa. Ting

Função de transferência

http://www.eizo.com/global/library/basics/lcd_display_gamma/

IA727 – 2s2014Profa. Ting

Como aumentar o realismo?

Alternativa 1: modelos geométricos refinados

IA727 – 2s2014Profa. Ting

Alternativa 2: modelos geométricos + modelo de iluminação

http://www.amarhys.com/ressources/tutoriaux/tut01_gb.htm

Modelo de iluminação + Tonalização

Como aumentar o realismo?

IA727 – 2s2014Profa. Ting http://www.amarhys.com/ressources/tutoriaux/tut01_gb.htm

Modelo de iluminação +Tonalização

texturaTexturização

Alternativa 3: modelos geométricos simples texturização

Como aumentar o realismo?

IA727 – 2s2014Profa. Ting

Como aumentar o realismo?

Alternativa 3: modelos geométricos simples texturização

IA727 – 2s2014Profa. Ting http://www.tomshardware.com/reviews/matrox-parhelia,465-5.html

Como aumentar o realismo?Alternativa 4: modelos geométricos simples multitexturização

IA727 – 2s2014Profa. Ting

Funções ou imagens que alteram os atributos de uma figura geométrica. Tal função ou imagem é chamada de mapa de textura.

Mapa de textura Espaço do Objeto Espaço da imagem

F(s,t) Projeção

pixel

texel

Pré-imagem de pixel

Mapas de Textura

IA727 – 2s2014Profa. Ting

Método Direto

Método Inverso

s

tst

x = x(s,t)y = y(s,t)

s = s(xs,ys)t = t(xs,ys)

Pré-imagem de pixel

Mapeamento

IA727 – 2s2014Profa. Ting

Fluxo de Texturização

IA727 – 2s2014Profa. Ting

A textura 2D é projetada ortogonalmente em uma dada direção.

Direção z: s=x t=y

Projeção Linear

IA727 – 2s2014Profa. Ting

Mapeamento de (u,v)∈[0,1]2 sobre a longitude e latitude de uma esfera.Para uma esfera de raio R com centro em (cx, cy, cz), a equação paramétrica dessa esfera é:

θ

φ

x = xc+Rcosφsinθ,y = yc+Rsenφsenθ,z = zc+Rcosθ.

θ = acos((z-zc)/R)φ = arctg((y-yc)/(x-xc))

s = (φ+π)/2πt = θ/π

[0, π]

[-π, π]

s

t

Projeção Esférica

IA727 – 2s2014Profa. Ting

x = xc+Rcos uy = hvz = zc+Rsen u

u = arctg((z-zc)/(x-xc))v = y

s = vt = u/π

v = [0,1]u = [-π,π]

Projeção Cilíndrica

IA727 – 2s2014Profa. Ting

Parametrização de Malha

http://www.mpi-inf.mpg.de/departments/d4/areas/meshproc/

IA727 – 2s2014Profa. Ting

Na direção da normal da superfície intermediária

Na direção da normal da superfície de interesse

A partir do centro do objeto de

interesse

Superfície intermediária

Superfície de interesse

Função Projetora

IA727 – 2s2014Profa. Ting

Um Exemplo

IA727 – 2s2014Profa. Ting

Repetição

Supressão/clamp

Função de Correspondência

IA727 – 2s2014Profa. Ting

Função de Correspondência● Wrap (DirectX), repeat (OpenGL) ou tile● Mirror● Clamp (DirectX) ou Clamp to edge (OpenGL)● Border (DirectX) ou Clamp to border (OpenGL)

IA727 – 2s2014Profa. Ting

Função de Transferência de Valores

http://http.developer.nvidia.com/GPUGems/gpugems_ch39.html

IA727 – 2s2014Profa. Ting

Representação no domínio espacial

Texel = texture element

http://www.paulsprojects.net/tutorials/simplebump/simplebump.html

Espaço de Textura 2D

IA727 – 2s2014Profa. Ting

Minimizar(Superamostragem)

Magnificar(Subamostragem)

Texels Texels

Pixels Pixels

Ponto mais próximo

Soma Ponderada

Replicação do ponto mais próximo

Interpolação linear

Textura de Imagem

IA727 – 2s2014Profa. Ting

Magnificação

nearest neighbor interpolação bilinear interpolação bicúbica

Efeito de pixelização Efeito de borramento

Aumentar realismo? Textura de detalhes

IA727 – 2s2014Profa. Ting

Textura de Detalhes

http://twhl.info/tutorial.php?id=159

no controle de luminosidade

Efeito visual de uma textura de alta resolução

Textura de baixa resolução

Textura de detalhes

IA727 – 2s2014Profa. Ting

Remapeamento

Interpolação por vizinho mais próximo

Interpolação bilinear Remapeamento

● Aumento da nitidez nas bordas.

textura de cutouttextura vetorial

textura de amostras do campo de distância

IA727 – 2s2014Profa. Ting

Minimificação

Vizinho mais próximo

Interpolação bilinear

Summed area table (SAT)

Limite de Nyquist: frequência de amostragem da textura não deve ser 2 vezes maior que a

frequência de amostragem da geometria (pixels).

IA727 – 2s2014Profa. Ting

MipmappingMIP (Multum In Parvo – muito em pouco espaço).Método de aceleração do cálculo da cor média para áreas de amostragem da textura (Williams, 1983).Várias versões da textura são criadas (mipmaps).

Cada texel de uma versão contém a cor média de 4 texels da versão anterior.

IA727 – 2s2014Profa. Ting

Na texturização, a área de cada pixel do objeto é mapeada no mapa de textura original.Cada mipmap é associado a uma medida de quantos texels da textura original estão na área do texel do mipmap. No exemplo abaixo, a razão desses texels é de 9:1.

Nível de Detalhes

IA727 – 2s2014Profa. Ting

Nível de Detalhes

Para calcular a cor final, encontramos os dois mapas de textura cujas razões de texels é a mais próxima da razão do pixel atual.A cor resultante é a média das cores dos pixels amostrados nos dois mapas.

IA727 – 2s2014Profa. Ting

Mapeamentos Anisotrópicos

Como reduzir aliasing?

IA727 – 2s2014Profa. Ting

Ripmap

Redução anisotrópica

IA727 – 2s2014Profa. Ting

SAT

– Superamostragem (Crow, 1981): Também calcula uma cor média. No exemplo abaixo, cada canto da área do pixel é mapeado na textura. A média dos valores obtidos produz a cor final do objeto.

IA727 – 2s2014Profa. Ting

Textura 3D

IA727 – 2s2014Profa. Ting

Environment mapping

Técnica simples e eficaz de simular reflexos produzidos por superfícies espelhadas. Requer o mapa de reflexão.

e

observador

e

Ambiente

latit

ude

longitude

IA727 – 2s2014Profa. Ting

Mapa de Reflexão Latitude-LongitudeExemplo

http://www.reindelsoftware.com/Documents/Mapping/Mapping.html

IA727 – 2s2014Profa. Ting

Mapa deTextura de Reflexão

IA727 – 2s2014Profa. Ting

Mapa de Reflexão Esférico

IA727 – 2s2014Profa. Ting

e

rn

Sphere Mapping

IA727 – 2s2014Profa. Ting

e

rn

x2=s−

12

y2=t−

12

r x=2√1− x2− y 2 x

r y=2 √1−x2− y2 y

Sphere Mapping

IA727 – 2s2014Profa. Ting

Mapa de textura Modelo texturizado

Sphere Mapping

IA727 – 2s2014Profa. Ting

Mapeamento de (u,v)∈[0,1]2 sobre cada lado de um cubóide. Em vez de usar um mapa de textura, utilizam-se seis mapas – um para cada lado do cubo.

Ex.: Para mapear os lados da frente e de trás, elimina-se a coordenada z do ponto do objeto. As coordenadas xy restantes são utilizadas como no mapeamento planar.

Mapeamento cúbico

IA727 – 2s2014Profa. Ting

Mapeamento Cúbico

IA727 – 2s2014Profa. Ting

Mapeamento Cúbico

IA727 – 2s2014Profa. Ting

Memória de Textura

● Alta demanda de memória ● Memória Cache

– LRU– MRU– Prefetching– Clipmap

● Compressão de textura

http://vterrain.org/LargeTextures/

IA727 – 2s2014Profa. Ting

OpenGL

http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/glsl-core-tutorial-texture-coordinates/

http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/glsl-core-tutorial-texturing-with-images/

Dimensões usualmente em potência de 2