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

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

Computação Gráfica - LM

Apresentações semelhantes


Apresentação em tema: "Computação Gráfica - LM"— Transcrição da apresentação:

1 Computação Gráfica - LM
Shading Computação Gráfica - LM

2 Iluminação, Sombras, Shading e Textura
Sombreamento Remoção de faces ocultas Textura

3 Shading Dada uma equação para calcular a radiância da superfície, ainda é necessário aplicá-la ao modelo real. Pode-se determinar ela em alguns pixels e interpolar ou espalhar para aos outros (Shading) shading é geralmente executado durante a rasterização há modelos eficientes para fazer isso (Flat, Gouraud, Phong shading)

4 More Common Shading Styles
Faceted shading: no interpolation color constant within polygon least expensive Gouraud shading: interpolate colors shade each vertex linearly interpolate color across polygon cost: three integer adds per pixel Phong shading: interpolate normals calculate vertex normals linearly interpolate normals across polygon use interpolated normal to shade each pixel (expensive!) cost: tens of floating point computations per pixel Texture Mapping: interpolate texture coordinates use those coordinates to do texture lookup for each pixel

5 Faceted (Flat) Shading
Calcula valor da normal e determina o valor de de iluminação (shading) para o centro do polígono (I(x,y)=…) que será o mesmo para todos os pixels dentro do polígono

6 Gouraud Shading Especificar um valor de sombra diferente para cada vértice de polígono (polígonos adjacentes com o mesmo valor na borda em comum) Interpolar na hora de fazer o rendering Pode também ser usado para obscurecer regiões distantes do observador, fazendo a cena parecer mais real

7 Gouraud P1,S1 P3,S3 P2,S2

8 Rasterizando Calcular o valor de iluminação (sombreamento) em A e B, interpolando os valores de S1, S2, e S3 Seja u1 = d(P1,A)/d(P1,P3) Seja u2 = d(P1,B)/d(P1,P2) As = u1S3 + (1-u1)S1 Bs = u2S2 + (1-u2)S1 Obs: para calcular o valor exato de sombreamento em C: Cs = As + (1-frac(Ax))*Gradient

9 Rasterizando Calcular o gradiente de sombreamento ao longo da linha:
Gradient = (Bs - As) / d(A,B) Obs: d(A,B) = (Bx-Ax), onde Ax,Bx = valor da coordenada em X de A,B Calcular o valor de cada pixel e pintar tela: Shade = Cs loop X from Cx to Dx plot pixel at (X,Y) with colour Shade Shade = Shade + Gradient End of X loop

10 Gouraud Shading We can do shading during scan conversion
How? Simply adjust the fill color on a pixel-by-pixel basis Compute illumination at each of the vertices Linearly interpolate vertex colors to get colors along each edge Interpolate edge colors to get pixel colors along each span Much faster than computing illumination at each pixel. A great trick! Pronounced goo-ro’

11 There is an Ambiguity This only happens for quadrilaterals and higher, but… When a square rotates on screen, the scan lines cross it differently. That means the X interpolation connects two different Y interpolation points. That means the color at a given pixel changes! (A good reason for preferring triangles). Barycentric coords (coming soon) don’t have this problem. C C C is red C is blue

12 Phong Shading Calcular normal em cada vértice
Para determinar cor de cada pixel: Interpolar normais linearmente, usando mesma idéia acima Calcular valor de shading usando normal interpolada (usando equação de shading) Resultado é melhor que interpolar shading diretamente

13 Shading Stytes Faceted Gouraud Phong

14 Shading Styles Gouraud and Phong are examples of smooth shading
trick to make polygon meshes look smooth Keep in mind that this is not physically correct! Why? 1. How should the color vary over a plane under diffuse illumination? 2. Normal interpolation does not make sense for a polygon! But it works great in practice

15 Shading Styles What is the advantage of Phong over Gouraud?
specular highlights look much better Phong shading is NOT the same as Phong Illumination! Phong illumination tells you how to compute radiance given normal Phong shading is a trick for interpolating normals in image space OpenGL does Gouraud shading (or flat shading)

16 Sombras Sombras ocorrem quando objetos são protegidos da luz
objeto não influi na iluminação da cena (não há reflexão direta da luz do objeto ao observador) Calcular o que está oculto é um problema de visibilidade a luz consegue ver o objeto?

17 Sombras Pode-se usar um algoritmo z-buffer para sombreamento
executar o algoritmo do ponto de visualização da fonte de luz salvar o z-buffer como shadow-buffer executar o algoritmo z-buffer real, mapeando cada ponto nas coordenadas da fonte de luz e comparando o valor contra o shadow-buffer (OK, felizmente já estudamos z-buffer :-)...

18 Shadow-buffer


Carregar ppt "Computação Gráfica - LM"

Apresentações semelhantes


Anúncios Google