Shading e Coordenadas Baricêntricas

Slides:



Advertisements
Apresentações semelhantes
II Projeto de PG Thiago Augusto Souza do Nascimento.
Advertisements

Real Time Rendering.
Luiz Marcos Curvas paramétricas Luiz Marcos
Computação Gráfica Mapeamento de textura
DCA-0114 Computação Gráfica
OpenGL Computação Gráfica.
António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico.
Dispositivos de Visualização e Rasterização
Projeções e OpenGL Alex F. V. Machado.
Modelos de ILuminação Alex F. V. Machado.
Parte 1 – Conceitos de Real Time Rendering. a. Pipeline Gráfico.
Introdução à Computação Gráfica Colorização
24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227
DIRETORIA ACADÊMICA NÚCLEO DE CIÊNCIAS HUMANAS E ENGENHARIAS DISCIPLINA: INGLÊS FUNDAMENTAL - NOITE PROFESSOR: JOSÉ GERMANO DOS SANTOS PERÍODO LETIVO
Alberto B. Raposo INF 1366 – Computação Gráfica Interativa Raytracing (resumo) POVRAY – Persistence of Vision Raytracer Alberto.
INF 1366 – Computação Gráfica Interativa Iluminação e Shading
Os desenhos.
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica: Aula8: Iluminação
Computação Gráfica: Rendering e Rasterização
Computação Gráfica: Aula6: Iluminação
Computação Gráfica - LM
Iluminação e FotoRealismo: R adiosidade Luís Paulo Peixoto dos Santos
Iluminação e FotoRealismo: Radiosidade
An Improved Illumination Model for Shaded Display
Computação Gráfica Iluminação e Texturas.
Computação Gráfica Modelos de Iluminação
Computação Gráfica: Aula6: Iluminação
Sphere CDV Fundamentals of Spherical Parameterization for 3D Meshes MOTIVAÇÕES: - Remeshing - Morphing.
César Palomo Dissertação de Mestrado Julho/2009.
Visão Computacional Shape from Shading
FUNDAMENTOS DE COMPUTACION GRAFICA Jessica Palomares
Avaliação Constituição dos grupos de trabalho:
Lecture 4 Pressure distribution in fluids. Pressure and pressure gradient. Hydrostatic pressure 1.
Estimação da direção de múltiplas fontes de luz Baseado no artigo Estimation of Illuminant Direction and Intensity of Multiple Light Sources, de W. Zhou.
Wh- Questions e Short Answers
Computação Gráfica – Visibilidade
Computação Gráfica Mapeamento de textura
Visão Computacional
Ray Tracing Daniel de Vasconcelos Campos. Tópicos Problema proposto Análise do problema Algumas Técnicas Pesquisadas Algoritmo Implementado.
1 GB-109 – Elementos de Computação Gráfica Professor Gilson A. Giraldi Coordenação de Ciência da Computação Web Page:
Image Based Cartoon Style Rendering Jeronimo Silvério Venetillo Fabio Issao Nakamura.
Where are the most populated places in Spain? Can you suggest reasons for this? Look at the atlas pages what is the difference in the climate.
AdsRcatyb It's sad to think we're not gonna make it É triste pensar que não vamos conseguir It's sad to think we're not gonna make it É triste pensar.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Introdução à Multimídia
INF 1366 – Computação Gráfica Interativa Rasterização
Shadow Mapping.
The Platters The great pretender Oh yes, I'm the great pretender Oh sim, eu sou o maior fingido Pretending that I'm doing well Fingindo que estou indo.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Once there were green fields, Uma vez que existiam campos verdes,
Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 3.
Modelo e Câmera e Projeção no OpenGL
Memória Associativa Linear
PSI2653: Meios Eletrônicos Interativos I Escola Politécnica da USP Engenharia de Sistemas Eletrônicos I – Informação Digital - Gráfico Meios Eletrônicos.
Computação Gráfica: Aula6: Iluminação
Rendering Por Adinan Aguiar.
By Búzios Slides Sincronizado com a Música All For Love Bryan Adams & Rod Stewart.
Introdução à Computação Gráfica Iluminação
Limit Equlibrium Method. Limit Equilibrium Method Failure mechanisms are often complex and cannot be modelled by single wedges with plane surfaces. Analysis.
Aula Prática 5. Fluxes (Problem 1.07) Consider the flow in a rectangular duct, formed by two paralell plates (width b=1m and height 2h= 30cm) where air.
Introdução à Computação Gráfica Rasterização
Na linha Tradução Rolagem automática On the Line Michael Jackson.
Pratical Lecture 10 Mecânica de Fluidos Ambiental 2015/2016.
Introdução à Computação Gráfica Ray Tracing Claudio Esperança Paulo Roma Cavalcanti.
Abril 2016 Gabriel Mormilho Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Departamento de Administração EAD5853 Análise.
Pesquisa Operacional aplicada à Gestão de Produção e Logística Prof. Eng. Junior Buzatto Case 3.
Equação de Evolução e método do volume-finito.
Pesquisadores envolvidos Recomenda-se Arial 20 ou Times New Roman 21.
Transcrição da apresentação:

Shading e Coordenadas Baricêntricas Computação Gráfica Luiz Marcos Garcia Gonçalves www.dca.ufrn.br/~lmarcos/courses/compgraf

Shading Dada uma equação para calcular a radiância da superfície, ainda é necessário aplicá-la ao modelo: Suponha uma esfera composta por vários retalhos triangulares (algoritmo simples): Projeta cada vértice de cada triângulo, determinando as regiões triangulares na imagem final a ser preenchida Percorre-se na imagem cada linha em cada triângulo, Determina os parâmetros da equação (ângulos, normais, coeficientes de reflexão) e pinta cada pixel, segundo o valor dado pela equação acima.

Shading Melhorando a performance da rasterização Pode-se calculá-la em alguns pixels e espalhar (ou interpolar) para os outros shading é geralmente executado durante a rasterização Há modelos eficientes (ou não) para fazer isso Flat Gouraud Phong

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

Gouraud Shading Especificar um valor de intensidade (cor) 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

Gouraud Shading Pode-se fazer durante conversão para raster (rasterização) Como? Ajuste o valor de preenchimento de pixel para pixel Calcule a iluminação em cada vértice Interpola linearmente as cores dos vértices (cor na aresta) Interpola cores da aresta para ter cor do pixel desejado Muito mais rápido que calcular iluminação para cada pixel. Um truque! Pronuncia-se gu-ro

Gouraud P1,S1 P3,S3 P2,S2

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 P1,S1 A B P3,S3 P2,S2

Rasterizando Obs: valor exato em C: Calcular o gradiente de sombreamento ao longo da linha (Gs): Gs = (Bs - As) / d(A,B) Obs: d(A,B) = (Bx-Ax), onde Ax,Bx = valor da coordenada em X de A,B Calcular valor de cada pixel e pintar tela: Shade = Cs ~= As loop X from Cx to Dx plot pixel at (X,Y) with Shade Shade = Shade + Gs End of X loop Obs: valor exato em C: Cs = As + (1-frac(Ax))*Gs =>Gs = gradiente P1,S1 P3,S3 P2,S2

Resultado

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

Shading Stytes Faceted Gouraud Phong

Resumo (shading mais comuns) 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

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

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)

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 don’t have this problem. C C C is red C is blue

Interp. shading for ray tracing Suppose we know colors or normals at vertices How do we compute the color/normal of a specified point inside? Color depends on distance to each vertex Want this to be linear (so we get same answer as scanline algorithm such as Gouraud or Phong shading) But how to do linear interpolation between 3 points? Answer: barycentric coordinates Useful for ray-triangle intersection testing too!

Coordenadas baricêntricas 1D Interpolação linear entre cores em C0 e C1 pelo parâmetro t Pode ser re-escrito como Intuição geométrica: Estamos pesando cada vértice pela razão entre as distâncias a b a e b são chamadas de coordenadas baricêntricas: a=d(C0,C)/d(C0,C1) e b = d(C,C1)/ d(C0,C1) = 1-a C0 C C1

Coordenadas baricêntricas 2D Agora suponha que temos 3 pontos ao invés de 2 Temos que definir 3 coordenadas baricêntricas: alfa, beta, gama Como definir alfa, beta e gama? C1 C C2 C0

Para um triangulo Definir coordenadas baricêntricas como razões entre as áreas dos triângulos

Resolvendo um Sistema Linear P = aP1 + bP2 + cP3 (x,y) = a(x1,y1) + b(x2,y2) + c(x3,y3) Sistema com 3 incógnitas e duas equações e a outra equação? a + b + c = 1

Calculando area de um triângulo in 3-D Area(ABC) = area-paralelogramo / 2 = ||(B-A) x (C-A)||/2 faster: project to xy, yz, or zx, use 2D formula in 2-D Area(xy-projection(ABC)) = [(bx-ax)(cy-ay) – (cx-ax)(by-ay)]/2 project A,B,C to xy plane, take z component of cross product positive if ABC is CCW (counterclockwise) B A C

Usando álgebra cy ay by bx cx ax That short formula Area(ABC) = [(bx-ax)(cy-ay) – (cx-ax)(by-ay)]/2 Where did it come from? The short & long formulas above agree. Short formula better because fewer multiplies. Speed is important! Can we explain the formulas geometrically? cy ay by bx cx ax

Computing area from geometry Area(ABC) =[(bx-ax)(cy-ay) – (cx-ax)(by-ay)]/2 is a sum of rectangle areas, divided by 2. (bx-ax)(cy-ay) (cx-ax)(by-ay) C ? + /2= A B cy ! ay ! /2= by ax cx bx It works:-).

Usando coordeandas baricêntricas Pode-se usar baricêntricas para interpolar quaisquer valores Gouraud Shading (interpolando de cor) Phong Shading (interpolando normal) Texture mapping ((s,t) interpolando coordenadas de textura)

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?

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, já estudamos z-buffer ? :-)...

Shadow-buffer