Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

28
Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass

Transcript of Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Page 1: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Guilherme Schirmer de Souza

Fundamentos de Computação Gráfica

Prof. Marcelo Gattass

Page 2: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

O objetivo dessa apresentação é fazer uma breve descrição teórica do primeiro trabalho da disciplina de Fundamentos de Computação Gráfica além de mostrar os resultados obtidos.

O Trabalho consistia em através de um determinado espectro de luz mostrar os diversos tipos de reflexão em um determinado objeto.

Page 3: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Fisicamente a cor é produzida por uma radiação eletromagnética cujo comprimento de onda está na faixa visível (entre 380 nm e 800 nm aproximadamente). Devido aos diversos tipos de radiação, a CIE, criou tipos padrão de iluminantes, como o Iluminante C e o Iluminante D65, para representar algumas das diferentes fontes de iluminação que existem. O Iluminante D65 (CIE D65), por exemplo, representa a luz do dia (vide Figura 1).

Page 4: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

0

1

2

380 480 580 680 780

)(x)(y

)(z

Além disso, a CIE criou o sistema CIE-XYZ de cores, para poder representar as cores visíveis do espaço. Tal sistema é baseado em três dimensões (sensores) devido ao fato do sistema visual humano possuir moléculas fotossensíveis de amostragem nas faixas Vermelho, Verde e Azul (vide Figura 2).

Figura 2Figura 1

Page 5: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Para calcular a cor XYZ de um espectro utiliza-se as seguintes equações:

780

380

780

380

780

380

)()(

)()(

)()(

dzPkZ

dyPkY

dxPkX

780

380

)()(

100

dy

k

w

sendo P o espectro o qual se deseja a cor, x, y e z os sensores do modelo e Ф o iluminante considerado como branco padrão (no caso, D65). Para o caso discreto, as equações são as seguintes:

_

780

380xPkX

_

780

380yPkY

_

780

380zPkZ

780

380

_

100

yk

Page 6: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Os monitores dos computadores não utilizam o sistema XYZ de cores, sendo assim as cores XYZ devem ser convertidas para o espaço RGB de cor. Porém, cada dispositivo usa seu próprio tipo específico de sistema de cor RGB. Por isso, foi criado o sistema sRGB, de forma a padronizar as cores e as estratégias de manipulação das mesmas. A conversão de XYZ para sRGB é feita da seguinte forma:

Page 7: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

ref_X =  95.047        //Observer = 2°, Illuminant = D65ref_Y = 100.000ref_Z = 108.883

var_X = X / 100        //X = From 0 to ref_Xvar_Y = Y / 100        //Y = From 0 to ref_Yvar_Z = Z / 100        //Z = From 0 to ref_Y

var_R = var_X *  3.2406 + var_Y * -1.5372 + var_Z * -0.4986var_G = var_X * -0.9689 + var_Y *  1.8758 + var_Z *  0.0415var_B = var_X *  0.0557 + var_Y * -0.2040 + var_Z *  1.0570

if ( var_R > 0.0031308 ) var_R = 1.055 * ( var_R ^ ( 1 / 2.4 ) ) - 0.055else                     var_R = 12.92 * var_Rif ( var_G > 0.0031308 ) var_G = 1.055 * ( var_G ^ ( 1 / 2.4 ) ) - 0.055else                     var_G = 12.92 * var_Gif ( var_B > 0.0031308 ) var_B = 1.055 * ( var_B ^ ( 1 / 2.4 ) ) - 0.055else                     var_B = 12.92 * var_B

R = var_R * 255G = var_G * 255B = var_B * 255

Page 8: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Em um ambiente físico, os objetos não são iluminados apenas pela luz de uma lâmpada e pela luz solar. Eles também são iluminados pelos demais objetos do meio que se encontram, através da reflexão desses com as fontes de luz supracitadas. Vários fatores influenciam a forma como cada objeto reflete a luz recebida como o ângulo de incidência do raio de luz, o espectro da luz incidente e a direção da qual se mede a reflexão.

Page 9: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Através de várias medições realizadas, foi verificado que a luz que incide numa superfície divide-se em uma parcela absorvida (reflexão ambiente), uma parcela refletida sem direção preferencial (reflexão difusa), uma parte que é refletida na direção do reflexo (reflexão especular), entre outras (vide figura 3).

Dessa forma, para calcular as cores de um objeto iluminado, para cada uma dessas parcelas, existem diversos modelos, sendo uns bem simples e outros bem complexos e realistas.

Figura 3

Page 10: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

A reflexão ambiente é um artifício introduzido para simular as reflexões mútuas entre os objetos. A intensidade da iluminação ambiente em um objeto é dada por:

onde ka é o coeficiente de reflexão ambiente específico de cada objeto e Ia é a intensidade da luz ambiente.

aaa IkS

Page 11: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Superfícies que refletem de forma perfeitamente difusa seguem a lei de Lambert, que afirma que a intensidade da radiação refletida por unidade de área independe da direção de reflexão (vide figura 4). A reflexão difusa é dada por:

ou onde θ é o ângulo entre a luz (L) e a normal da superfície (N), kd é o coeficiente de difusão específico do objeto (determina a cor do objeto) e I é a intensidade da luz.

)cos(dd IKS

LNIKS dd .

Page 12: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

luz incidente

luz incidente

luz incidente

Figura 4

Page 13: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Superfícies lisas ou brilhantes refletem a fonte de luz e causam um espalhamento da luz ao redor do reflexo. Este efeito é simulado pelo modelo de Phong. O espalhamento é conseguido por um aumento na intensidade de luz em direções próximas da reflexão especular R (vide Figura 5). A intensidade depende da posição V do observador, e é máxima na direção de R. O vetor R é obtido pela fórmula: LNLNR

)(2

Page 14: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Figura 5

A reflexão é dada por: ou

onde ke é o coeficiente especular de cada objeto e n é uma constante característica da superfície.

O modelo de Phong é um modelo empírico, baseado em observações físicas.

n

ee VRIkS

. nee IkS cos

Page 15: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

O modelo de Blinn-Phong é muito similar ao modelo de Phong. A diferença é a utilização do vetor H (bissetriz entre a luz e o observador) e da normal N ao invés de R e V no cálculo do coeficiente especular. O objetivo é otimizar pois a bissetriz H só precisa ser calculada uma vez, ao contrário do R.

Page 16: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

A reflexão da luz de superfícies reais tem sido objeto de muito estudo teórico e experimental. Os resultados experimentais foram próximos do modelo de Phong, porém com algumas diferenças. As diferenças são que a intensidade da reflexão especular varia de acordo com a direção da fonte de luz e o ângulo de pico da reflexão especular não é sempre o ângulo de incidência. Com isso, Cook e Torrance criaram um modelo diferente de reflexão levando em conta essas diferenças físicas.

Page 17: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Assim, é suposto que a superfície simulada é composta por uma coleção de micro facetas espelhadas que são orientadas de forma aleatória na superfície. Além disso, é assumido que a componente especular da luz refletida vem da reflexão das facetas orientas na direção H (o mesmo H do modelo Blinn-Phong). Portanto a reflexão especular é uma combinação dos seguintes fatores:

onde D é a função de distribuição da direção das micro facetas, G é a quantidade de sombra e cobertura que as facetas provocam entre si e F é a lei de reflexão de Fresnel.

).(VN

DGFIkS ee

Page 18: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

A luz refletida especularmente em uma determinada direção pode vir somente das facetas orientadas para refletir a luz naquele direção, ou seja, as facetas orientadas na direção de H. D representa exatamente essa quantia. O cálculo exato de D é na forma de uma exponencial (distribuição de Beckmann), porém para facilitar a sua obtenção, D pode ser calculado da seguinte forma:

2

22

2

11)(cos

cNH

cD

Page 19: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Essa fórmula é baseada no modelo de micro facetas como elipsóides de revolução e c é a excentricidade dos elipsóides. c é 0 para superfícies brilhantes e 1 para superfícies difusas.

Page 20: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Algumas das facetas provocam sombras nas outras, reduzindo assim a luz que chegua em cada uma delas. O fator de atenuação (G) é o valor dessa atenuação e varia de 0 a 1 para representar a proporção de luz remasnecente. O cálculo de G leva em conta todas as situações: quando não existe interferência entre as micro facetas, quando a reflexão é bloqueada e quando a luz incidente é bloqueada. O valor de G é portando o menor entre esses 3 valores:

Page 21: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Para o caso a  Ga = 1.0Para o caso b Gb = 2(N·H)(N·E)/(E·H)Para o caso c Gc = 2(N·H)(N·L)/(E·H)G = min (Ga, Gb, Gc)

Figura 6

Page 22: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

A reflexão de Fresnel obtém a fração de luz incidente em uma faceta que é refletida ao invés de absorvida.

onde , e n é o índice de refração do objeto

2

2

2

2

1

11

2 cgc

cgc

cg

cgF

HVc 122 cng

Page 23: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

A intensidade global de iluminação de um ponto é dado, portanto, pelo somatório das componentes ambiente, difusa e especular:

eda SSSS

Page 24: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Material: Alumínioka = (0,0,0); kd=(0.6,0.6,0.6); ks=(0.4,0.4,0.4)n (Phong) = 200; n (Blinn-Phong) = 200; n (Cook) = 200c = 0.35 (Cook)

Iluminante: D65

Cook Blin-Phong

Phong

Page 25: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Material: Aleatórioka = (0.9,0.2,0.2); kd=(0.9,0.2,0.2); ks=(1,1,1)n (Phong) = 50; n (Blinn-Phong) = 50; n (Cook) = 50c = 0.35 (Cook)

Iluminante: D65

Cook Blin-Phong

Phong

Page 26: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Material: Cerâmica de óxido de magnésioka = (0,0,0); kd=(0.333,0.333,0.333); ks=(0.667,0.667,0.667)n (Phong) = 58; n (Blinn-Phong) = 58; n (Cook) = 1.8c = 0.35 (Cook)

Iluminante: D65

Cook Blin-Phong

Phong

Page 27: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

Notas de aula. http://www.cie.co.at/publ/abst/

datatables15_2004/sid65.txt http://www.isc.tamu.edu/~astro/color/

cie_xyz1964.html http://en.wikipedia.org/wiki/D65 http://en.wikipedia.org/wiki/

Chromaticity_coordinate#The_CIE_xy_chromaticity_diagram

Gomes, Jonas; Velho, Luiz. Computação Gráfica, Vol 1. Rio de Janeiro, IMPA, 1998.

http://users.directnet.com.br/val/tutor/tutor.html#capit5

Page 28: Guilherme Schirmer de Souza Fundamentos de Computação Gráfica Prof. Marcelo Gattass.

https://www.siggraph.org/education/materials/HyperGraph/illumin/similum0.htm

http://en.wikipedia.org/wiki/Cook-Torrance#Cook.E2.80.93Torrance_model