Determinação de Superfícies Visíveis PDF

Summary

Este documento trata de técnicas de visualização de superfícies em gráficos 3D. O texto cobre conceitos básicos de ordenação de superfícies em 3D e também apresenta exemplos de algoritmos como a rasterização e as etapas necessárias para determinar quais as partes visíveis dos objetos. Aspectos específicos que são abordados incluem: Algoritmos de cálculos de Visibilidade, com enfoques em Culling e Recorte; técnicas como o z-buffer, scan line e abordagens de partição espacial. Isso também descreve problemas e soluções relacionados, considerando técnicas de coerência e sombreamento.

Full Transcript

Determinação de Superfícies Visíveis Técnicas para Algoritmos eficientes Algoritmos do espaço imagem Algoritmos do espaço objecto Recordar: Pipeline de visualização...

Determinação de Superfícies Visíveis Técnicas para Algoritmos eficientes Algoritmos do espaço imagem Algoritmos do espaço objecto Recordar: Pipeline de visualização Transform Illuminate Transform Clip Project Rasterize modelo e pipeline de rendering Framebuffer Display câmara 2 Recordar: Pipeline de visualização grafo de cena / modelo 3D Resultado: transformação todos os vértices da cena estão especificados num referencial de modelação 3d comum – o sistema de coordenadas do mundo Efectuar Culling; evita iluminação e transformação cálculos de iluminação sombreado dos vértices de acordo com o modelo de iluminação Transformação Visualização transformação para o referencial de visualização (ou da câmara). Clipping/ Recorte recorte: preservar apenas os vértices que estão no interior do viewport Projecção projecção dos vértices para um plano 2D Rasterização 3 Cálculo de Visibilidade  Numa cena 3D, geralmente não é possível ver todas as superfícies de todos os objetos  Não queremos que objetos ou partes de objetos não visíveis apareçam na imagem  Isto gera diferentes problemas, como: – Eliminar objetos que não podem ser vistos (culling) – Recortar objetos de forma a manter apenas as partes que podem ser vistas (clipping) – Desenhar apenas partes visíveis dos objetos  No capítulo da rasterização, não consideramos o cálculo da visibilidade: – Não se considerou a ordenação de profundidade dos objetos  Algumas partes estão na frente de outras, queremos sempre desenhar os objetos mais próximos sobre os mais distantes 5 – Esta será a fase final da pipeline gráfica Cálculo de Visibilidade  Wireframe e HLR (Hidden-Line Removal) 5 Cálculo de Visibilidade  Wireframe e HSR (Hidden Surface Removal) 6 Cálculo de Visibilidade  A Rasterização converte as primitivas para pixels na imagem  Contudo, devemos assegurar que os objetos que são tapados por outros não sejam desenhados  Para cada pixel, qual o objeto mais próximo na cena? – Isto é o que devemos desenhar nesse pixel  Desde que o objeto não seja transparente – Precisamos de determinar a superfície mais próxima ao observador que, consequentemente, estará visível  Este problema envolve, basicamente, uma ordenação parcial até a primeira superfície opaca em cada vizinhança da imagem 7 Cálculo de Visibilidade  Dado um conjunto de objetos 3D e a especificação de uma vista pretende-se determinar quais as partes dos objetos que são visíveis, a partir: – do centro de projeção (para projeções perspetivas) ou – ao longo da direção de projeção (para projeções paralelas) de forma a que possamos mostrar apenas as linhas ou superfícies visíveis  Existem duas abordagens fundamentais ao problema: – algoritmos de precisão – imagem (2D): realizados à resolução do dispositivo de visualização, determinam a visibilidade em cada pixel – algoritmos de precisão – objeto (3D): realizados à precisão com a qual cada objeto é definido, determinam a visibilidade de cada objeto 8 Cálculo de Visibilidade 1ª abordagem:  Determinar qual, de n objetos, é visível em cada pixel na imagem Para (cada pixel na imagem) fazer { determinar o objeto mais próximo do observador que é atravessado pelo projetor através desse pixel; desenhar o pixel na cor apropriada; } – Forma rápida e à “força bruta”:  examinar todos os n objetos para determinar qual é mais próximo ao observador ao longo do projetor que passa através do pixel – Para p pixels, o esforço é proporcional a n * p, onde p é superior a um milhão para um monitor de alta resolução 9 Cálculo de Visibilidade 2ª abordagem:  Comparar os objetos diretamente uns com os outros, eliminando objetos inteiros ou porções destes que não são visíveis Para (cada objeto na cena) fazer { determinar as partes do objeto não tapadas por ele ou por outros objetos; desenhar as partes visíveis na cor apropriada; } – Forma simples: comparar cada um dos n objetos consigo próprio e com os outros objetos, e descartar as porções invisíveis – O esforço computacional aqui é proporcional a n2 10 Cálculo de Visibilidade  Comparação: – Espaço da imagem (2D)  Dados matriciais (imagem)  Dependente da resolução da imagem  Estão interessados na solução correta do problema para um determinado nível de resolução  Visibilidade determinada apenas em pontos (pixels) – Procuram resolver o problema no âmbito de cada pixel, analisando as profundidades relativas em cada raio de visão (projetor), sendo a visibilidade adiada até ao último momento  Podem aproveitar aceleração por hardware  Exemplos: – Orientada à área: Algoritmo de Warnock – Orientada à Linha: ScanLine – Orientada ao pixel: Z-Buffer, Ray Casting 11 Cálculo de Visibilidade  Comparação: – Espaço do Objeto (3D)  Dados geométricos (modelo, analítico) – Usam normalmente números reais com vírgula flutuante  Calculam a solução exatamente e o resultado é uma lista ordenada das faces a serem projetadas no plano de projeção  Independente da resolução da imagem  Menor vulnerabilidade a aliasing (efeitos de amostragem)  Rasterização ocorre depois  Exemplos: – Algoritmo do Pintor – BSP-trees 12 Cálculo de Visibilidade  Comparação: – Embora a abordagem ao espaço do Objeto pareça ser superior para n < p, os seus passos individuais são vulgarmente mais complexos e consomem mais tempo, por isso é na maioria das vezes mais lenta e mais difícil de implementar – Abordagens Híbridas: algoritmos mais recentes na sua maioria combinam ambos os cálculos: precisão-imagem e precisão-objeto,  à precisão-objeto escolhidos pelo seu rigor (solução exata)  à precisão-imagem por questões de velocidade (mais eficientes, em geral) 13 Técnicas para algoritmos eficientes  Os algoritmos devem estar organizados de forma a que as operações de maior custo sejam efetuadas de forma eficiente e o menor nº. de vezes – minimizar o tempo de gerar uma figura  Algumas técnicas que podem ser usadas estão relacionadas com: – Coerência – Transformação Perspetiva – Extensões e volumes fronteira – Back-face culling – Decomposição espacial – Hierarquia 14 Técnicas para algoritmos eficientes  Coerência – É o grau de semelhanças locais que as partes de uma cena ou as suas projeções exibem – É explorada quando se reutiliza cálculos efetuados para uma parte da cena, para outras partes vizinhas, sem alterações, ou com alterações incrementais (mais eficientes, do que recalcular esta informação a partir do zero) – Muitos tipos diferentes têm sido identificados, tais como:  Coerência de objetos  Coerência de faces  Coerência de arestas  Coerência de aresta implícita  Coerência de linhas de varrimento  Coerência de área  Coerência de profundidade  Coerência de frames 15 Técnicas para algoritmos eficientes  Coerência de objeto: se um objeto é completamente separado de outro, então pode não ser necessário fazer comparações entre as suas faces  Coerência de face: as propriedades da superfície variam pouco ao longo de uma face, permitindo que uma parte seja modificada incrementalmente para aplicar a outra parte adjacente  Coerência de linha de varrimento: o conjunto de porções de objetos visíveis (span) numa linha de varrimento difere pouco da anterior  Coerência de profundidade: partes adjacentes de uma superfície são normalmente próximas em profundidade 16 Técnicas para algoritmos eficientes  A Transformação de Perspetiva – A determinação de superfícies visíveis têm de ser efetuada num espaço 3D antes da projeção no espaço 2D  a projeção destrói a informação sobre profundidade (z), necessária para as comparações de profundidade – As comparações de profundidade são normalmente efetuadas depois da transformação de normalização (do volume de visualização) ter sido aplicada, de tal forma que os projetores:  são paralelos ao eixo z nas projeções paralelas, ou  emanam a partir da origem nas projeções perspetivas 17 Técnicas para algoritmos eficientes  A Transformação de Perspetiva – A comparação de profundidade num ponto reduz-se à questão:  Dados 2 pontos P1=(x1,y1,z1) e P2=(x2,y2,z2), algum dos dois obscurece o outro? – Equivalente a:  P1 e P2 estão no mesmo projetor (ver figura)? 18 Técnicas para algoritmos eficientes  A Transformação de Perspetiva – Se sim (se estão no mesmo projetor) z1 e z2 são comparados para determinar qual o ponto que está mais próximo do observador. Se não, então nenhum ponto pode obscurecer o outro – Para uma projeção paralela:  os pontos estão no mesmo projector se x1 = x2 e y1 = y2 – Para uma projeção perspetiva:  São necessárias 4 divisões para determinar se x1/z1 = x2/z2 e y1/z1 = y2/z2, no caso em que os pontos estão no mesmo projector. Ainda, se P1 é depois comparado relativamente a P3, são requeridas mais 2 divisões – Por conveniência de notação, contudo, os exemplos aqui usam valores de z positivos decrescentes (a partir do observador)  Plano de trás: z=0, Plano da frente: z=zmax 19 Técnicas para algoritmos eficientes  Culling – Não desenhar aquilo que não se vai ver  Crítico para obter uma maior eficiência – O que é que não se vai ver?  Tudo o que seja tapado por outro objeto  Tudo o que esteja fora do volume de visualização 20 Técnicas para algoritmos eficientes – View Frustum Culling  Rejeitar qualquer objeto que estiver fora do volume de visualização o mais cedo possível  Dado um conjunto de polígonos: – Testar a interseção com o volume visualização (frustum) – Qualquer polígono que não intersecte o frustum pode ser rejeitado  Qual o problema deste simples algoritmo? – Então e se um objeto composto por um milhão de polígonos estivesse completamente fora do frustum?  Não queremos testar cada um! 21 Técnicas para algoritmos eficientes – Culling com Janelas (2D) e Volumes fronteira (3D)  Uma forma de evitar comparações desnecessárias entre os objetos ou entre as suas projeções  O teste é semelhante ao teste de rejeição trivial no recorte (clipping) Fig. 2 – projeções e janelas das projeções a) Fig. 1 - Dois objetos, as suas projeções as janelas e as projeções sobrepõem-se; b) as 23 no plano (x,y) e as janelas das projeções janelas sobrepõem-se, mas as projeções não. Técnicas para algoritmos eficientes – Culling com Janelas (2D) e Volumes fronteira (3D)  As janelas podem ser usadas para circundar os próprios objetos em vez das suas projeções: neste caso, tornam-se sólidos e são conhecidas como volumes fronteira (Bounding Volumes)  Alternativamente, podem ser usadas para limitar uma só dimensão, para determinar por exemplo se 2 objetos se sobrepõem em Z Fig. – usando extensões 1D para determinar se os objetos se sobrepõem – Não há sobreposição em Z se: Zmax2 < Zmin1 ou Zmax1 < Zmin2 23 Técnicas para algoritmos eficientes – Culling com Janelas (2D) e Volumes fronteira (3D)  Assim, testar o Volume fronteira primeiro – Se estiver fora do frustum, rejeitar o objeto – Noutro caso, testar as componentes individuais  O volume convexo pode ser: – Bounding box: orientada com o objeto ou alinhada com os eixos – Bounding sphere: pode não se adaptar bem ao objeto 24 Técnicas para algoritmos eficientes – Back-Face Culling (eliminação de faces traseiras)  Mesmo para os polígonos dentro do frustum, alguns podem ser rejeitados – Se assumirmos que os objetos são fechados 25 Técnicas para algoritmos eficientes – Back-Face Culling  Se um objeto é aproximado por um poliedro sólido, então as faces poligonais envolvem completamente o volume do objeto  Assumindo que todos os polígonos são definidos de forma a que a sua normal aponte para o exterior do objeto, então os polígonos cuja normal aponta para o lado oposto ao observador, pertencem a uma zona do objeto completamente tapada pelos restantes polígonos  Tais polígonos posteriores (back-facing) invisíveis podem ser eliminados de processamento posterior - back-face culling – Por analogia, aqueles polígonos que não são back-facing são designados front-facing 26 Técnicas para algoritmos eficientes  Back-Face Culling – Independentemente de estarem à frente ou atrás de outros – Se a cena for composta de objetos poliédricos fechados, pode-se reduzir o n.º de superfícies a desenhar:  Desenhar apenas as superfícies do lado do observador  Diminuição da complexidade da cena, reduzindo substancialmente o peso computacional – Como determinar as faces visíveis? 27 Técnicas para algoritmos eficientes – Back-Face Culling  Para a determinação das faces traseiras, basta calcular o sinal da projeção (produto interno) da normal de cada superfície com a direção de observação (normalmente o eixo Z), ou seja: – em coordenadas de visualização, um polígono back-facing pode ser identificado pelo produto escalar não negativo que a sua normal à superfície forma com o vetor a partir do centro de projeção para qualquer ponto no polígono V.N < 0 front face V.N > 0 back face V.N = 0 visto de perfil 28 Técnicas para algoritmos eficientes – Back-Face Culling  Num sistema direto com direção de visualização ao longo do eixo negativo do eixo Zv: – um polígono é back facing se C São modelos locais  Por exemplo, objetos não causam sombras noutros objetos  Modelos mais complexos, iluminação global, já o permitem: – Ray Tracing:  Cálculo interações especulares  Cálculo de sombras – Radiosidade 38  Cálculo de interações difusas modelos de iluminação locais iluminação ambiente reflexão difusa reflexão especular modelo de iluminação de Phong recordar: pipeline de visualização grafo de cena / modelo 3D Resultado: transformação todos os vértices da cena estão especificados num de modelação referencial 3d comum – o sistema de coordenadas do mundo Efectuar Culling; evita iluminação e transformação cálculos de iluminação sombreado dos vértices de acordo com o modelo de iluminação Transformação Visualização transformação para o referencial de visualização (ou da câmara). Clipping/ Recorte recorte: preservar apenas os vértices que estão no interior do viewport Projecção projecção dos vértices para um plano 2D Rasterização 3 iluminaçã o objetivo da CG – construção de modelos virtuais de cenas  modelação  iluminação (lighting) – modelação (geométrica)  problema “fácil”  pode ser demorado (oneroso) – iluminação (interações luz superfície)  problema fundamental da CG  simular luz numa cena (de uma forma rápida)  as imagens obtidas deverão ser corretas ou “indistinguíveis” de uma imagem real (tal como a vemos).  outro desafio (mais difícil): gerar imagens corretas em tempo real 4 iluminaçã o  realismo em tempo real – iluminação é o problema central na síntese de imagens em tempo real  fontes de luz com configurações arbitrárias  mudanças (em tempo-real) das condições de iluminação  sombras (em tempo real)  reflexões (em tempo real)  misturas de diferentes tipos de superfície – transparências, texturas 5 iluminaçã o  illumination (iluminação) – transporte de energia entre superfícies  emissão, reflexão, absorção  iluminação direta e indireta  lighting (?) – processo de cálculo da radiância (intensidade da luz) num ponto 3D (particularmente numa superfície)  shading (sombreado/sombreamento) – processo de atribuição de cores a pixels da imagem sintetizada 6 lighting  dado um modelo 3D e um ponto de observação 3D – determinar os fragmentos do modelo que são visíveis – determinar a cor dos pixels  como determinar a cor de cada pixel? – modelos de iluminação  modelo que simula as interacções da luz com os objectos – tipos de modelos de iluminação  locais  globais – baseados em  leis da Física  aproximações empíricas – em qualquer dos tipos existe sempre um grande conjunto de aproximações  para reduzir complexidade do tratamento e acelerar o cálculo 7 modelos de iluminação (m.i.)  modelos de iluminação – teóricos / fisicamente corretos  baseados nas leis físicas – empíricos  formulações simples que aproximam os fenómenos observados. Não tem em muitas das formulações um fundamento físico.  mas funcionam…(com os devidos descontos)  são geralmente mais rápidos (um dos objetivos)  dada a sua menor complexidade (o que também ajuda)  computação gráfica – normalmente modelos empíricos – mas cada vez mais são utilizados modelos baseados nas Leis da Física 8 modelos de iluminação (m.i.)  em Computação Gráfica a iluminação simula como os objetos refletem a luz em tempo real  é uma aproximação empírica da iluminação real, por vezes sem bases teóricas profundas que a sustentem, no entanto com resultados práticos bastante aceitáveis  esta aproximação deve-se a dois fatores: – as equações da iluminação real não são totalmente conhecidas – mesmo os modelos simplificados da realidade são extremamente complexos 9 componentes de um m.i.  luzes – emissores de luz  emitem um determinado espectro de luz  superfícies (propriedades) – refletem  de forma especular (reflexão perfeita / espelho)  de forma difusa  de forma “acetinada”/ glossy – absorvem  partes ou totalidade do espectro de luz – transmitem / refratam  objetos com transparências 10 componentes: luzes  fontes de luz ou emissores – emitem um determinado espectro de luz  cor da luz – atributos geométricos  posição  direcção  forma – atenuação direccional 11 componentes: superfícies  propriedades da superfícies – espectro de reflectância  cor da superfície – atributos geométricos  posição  orientação  micro-estrutura 12 componentes: simplificações  simplificações habituais (em aplicações interativas) – considerar apenas iluminação direta  modelos de iluminação local  sem interferência entre diversas superfícies – simplificação da geometria dos emissores (luzes) a casos triviais  por exemplo: luz pontual – fonte de luz reduzida a um ponto – luz omnidirecional (emite luz de forma homogénea em todas as direções) 13 componentes: simplificações  o modelo de iluminação mais simples:  considerar que todos os objetos têm uma intensidade intrínseca  para cada objeto é definida uma constante que indica a intensidade intrínseca I = ki – I é a intensidade resultante – ki é a intensidade intrínseca do objeto – Objetos mais claros têm uma intensidade intrínseca elevada, – Objetos escuros têm uma intensidade intrínseca reduzida 14 componentes: simplificações  supondo que em vez de iluminação própria, temos: – Iluminação difusa; – Não direcional; – Produz múltiplas reflexões de luz a partir das várias superfícies existentes no ambiente.  estamos na presença de Iluminação Ambiente 15 luz ambiente  para simular a iluminação indireta – assim, objetos que não são diretamente iluminados continuam visíveis na cena  partes de baixo das mesas  tetos (quando as luzes são direcionais e para baixo)  etc. – na realidade, esta iluminação indireta existe por reflexão da luz em paredes, chão, etc. – mas os fenómenos de iluminação indireta são, na maior parte dos casos, computacionalmente custosos 16 luz ambiente  qual o truque ? introduzir na equação: – componente de luz ambiente – não tem características direcionais – ilumina cada superfície de uma forma homogénea – a quantidade refletida de luz ambiente, para cada superfície, depende das características da superfície, simulado por um parâmetro (coeficiente) de reflexão de luz ambiente Ka 17 luz ambiente  para cada comprimento de onda – geralmente, apenas para as componentes RGB  a luz ambiente reflectida depende – das propriedades da superfície – da intensidade (e distribuição espectral) da luz ambiente  assim: Propriedade da luz Ireflectida= ka* Iambiente Propriedade do material 18 luz ambiente  na equação de iluminação ambiente: I = Ia * ka – I é a intensidade (resultante) observada; – Ia é a intensidade da luz ambiente, assumida como constante para todos os objetos em todas as direções; – ka é a quantidade de luz ambiente refletida pela superfície de um objeto (coeficiente de reflexão ambiente [0, 1] ; próximo de 1, se o objeto for claro) 19 luz direcional  fonte de luz direcional - simplificação: – raios de luz paralelos  como se a luz estivesse bastante longe dos objetos  uma boa aproximação para a luz solar  a orientação de uma superfície relativamente à luz é importante na iluminação – com luzes direcionais a direção da luz é constante  o que para além de ser, para alguns casos, uma boa aproximação a algumas fontes de luz, simplifica alguns cálculos 20 luz pontual  uma fonte de luz pontual – emite luz de uma forma homogénea em todas as direções:  omnidirecional – a direção da luz em pontos distintos de uma superfície é diferente  necessário cálculo do vetor com a direção da luz, para cada ponto da superfície 21 outros tipos de luz  spotlights – possuem atenuação direcional – suportadas pelo OpenGL  áreas / superfícies emissoras de luz (area light sources) – discos / polígonos – exemplo: painéis fluorescentes – capazes de gerar sombras progressivas / suaves 22 reflexão: a física da reflexão  difusão ideal – um difusor ideal, no seu nível microscópico, é uma superfície rugosa (por exemplo, giz). – por causa da sua microestrutura, a superfície, perante a incidência de luz, reflete-a de uma forma homogénea em todas as direções (na hemisfera de reflexão) – de que depende a intensidade da luz refletida? 23 reflexão: difusor ideal – de que depende a intensidade da luz reflectida? 24 reflexão: Lei de Lambert  os difusores ideais comportam-se de acordo com a Lei de Lambert (do co-seno): – a energia refletida, por uma pequena superfície, de uma fonte de luz posicionada numa determinada direção, é proporcional ao co- seno do ângulo entre a direção da luz e a normal à superfície  estas superfícies dizem-se – Lambertianas (ou de Lambert)  notar que a intensidade refletida é independente do local do observador (ponto de vista)  notar que dependem exclusivamente da posição relativa entre o ponto na superfície e a fonte de luz 25 reflexão: Lei de Lambert 26 reflexão: Lei de Lambert  a este ângulo dá-se o nome de : – ângulo de incidência  E a intensidade reflectida, como se calcula? Idifusa = kd * Iluz * cos   na prática, com cálculo vectorial: Idifusa = kd * Iluz * (n l) 27 reflexão: Lei de Lambert  esfera vista com a luz em diferentes posições  apenas é necessário considerar ângulos de incidência entre 0º e 90º. 28 reflexão difusa  Assim, para uma superfície, o brilho depende do ângulo  entre a direcção L à fonte de luz e a normal da superfície N: I  I p  K d  cos – I é a intensidade resultante; – Ip é a intensidade da fonte do ponto de luz; – kd é o coeficiente de reflexão difusa. Varia com o tipo de material; Numa superfície que satisfaz a lei de Lambert, a intensidade da luz – O ângulo  deverá estar entre 0º e reflectida vista pelo observador é 90º se pretendermos que a fonte de independente da direcção do luz tenha algum efeito directo no observador e depende apenas do ângulo de incidência da luz ponto a ser iluminado. 29 reflexão difusa A equação anterior pode ser rescrita introduzindo um termo ambiente (mais realismo) Sendo a normal à superfície representada por um vector N e o raio de iluminação por um vector unitário L.  Então cos  = N. L: I  I a * K a  I p * K d *(N.L) Produto interno (N L) = ║N║*║L║* cos  = nx * lx + ny * ly+ nz * lz Caso os vectores N e L estejam normalizados (║N║= 1 e ║L║= 1) pode-se substituir o co-seno pelo produto interno 30 reflexão especular  Ao iluminar superfícies brilhantes, estas exibem regiões brilhantes (reflexão especular): – metal polido – pintura (brilhante) de carro  uma luz incidente numa superfície especular provoca uma região de brilho intenso (spot) conhecido como – specular highlight (brilho especular)  este tipo de reflexão é dependente da vista – a posição onde estes brilhos intensos aparecem depende da posição do observador 31 reflexão especular  a um nível microscópico, as superfícies especulares são bastante suaves  Assim os raios de luz são reflectidos de uma forma semelhante a um espelho  Quanto mais suave a superfície, mais próximo fica de um espelho ideal. – exemplo: metal polido 32 reflexão especular  sucede nas superfícies polidas, com especial relevo nas superfícies metálicas  por ex., numa maça vermelha iluminada por uma luz branca brilhante: - o ponto brilhante é causado pela reflexão especular, e a luz refletida do resto da maça é o resultado da reflexão difusa – no ponto brilhante, a maça parece não ser vermelha, mas branca, a cor da luz incidente. A luz refletida especular duma superfície sem cor, tem a mesma cor da fonte de luz.  as superfícies brilhantes reflectem luz de forma desigual 33 em diferentes direcções reflexão especular  num refletor ideal (espelho perfeito), a luz é refletida apenas na direção de reflexão R, o qual é refletido (espelho) relativamente a N (o ângulo de incidência e o ângulo de reflexão especular têm o mesmo valor).  assim o observador pode ver luz refletida de forma especular dum espelho só quando o ângulo  (na fig.) é zero;  é o ângulo entre R e a direção ao ponto de observação V. 34 reflexão: Lei de Snell  a reflexão especular comporta-se de acordo com a Lei de Snell: – o raio incidente e o raio refletido estão numa superfície plana (em termos infinitesimais) com uma determinada normal. – o raio refletido forma com a normal da superfície um ângulo idêntico ao formado pelo raio incidente. 35 reflexão especular não perfeita: modelos empíricos  como modelar este comportamento? 36 reflexão especular não perfeita  a Lei de Snell aplica-se a superfícies espelhadas, mas para além de espelhos e cromados, poucas superfícies têm um comportamento especular perfeito  Como se pode capturar as reflexões mais suaves de superfícies com brilhos acetinados (glossy)?  Ideia 1: – modelar a micro-geometria das superfícies…. – … e calcular os efeitos da luz…  Ideia 2: – modelo empírico : modelo de iluminação de Phong 37 reflexão especular não perfeita: modelos empíricos  Ideias: – a maior parte da luz deverá ser refletida na direção definida pela Lei de Snell – mas devido às variações microscópicas, alguma luz deverá ser refletida em direções aproximadas à direção de reflexão especular perfeita – quanto maior for a distância entre um determinado ângulo e o ângulo da reflexão especular perfeita, menos quantidade de luz deverá ser refletida. 38 Reflexão Especular Modelo de Iluminação de Phong  Phong Bui-Tuong desenvolveu um modelo popular de reflexão para refletores não perfeitos, como é por exemplo: a maçã  Neste modelo calcula-se a intensidade da reflexão especular como sendo proporcional ao cosns, em que ns depende das características da face a visualizar (valor 1 para faces não polidas e 200 para faces perfeitamente polidas).  Para um refletor perfeito: ns seria infinito.  A reflexão especular também depende do ângulo de incidência . 39 reflexão especular não perfeita: modelo de Phong.  modelo sugerido por Phong  o coeficiente ns é uma constante empírica que determina como se dá o decaimento do brilho – Quanto maior o valor, mais pequeno é o ponto brilhante – Materiais metálicos tendem a ter valores altos, enquanto que materiais baços definem-se com valores baixos  embora empírico, o modelo funciona (ou vai funcionando) na prática.  I luz  cos  ns Iespecular  ks 40 reflexão especular não perfeita: modelo de Phong.  variação em função de ns. 41 Reflexão Especular Modelo de Iluminação de Phong Superfícies menos polidas Superfícies mais polidas Diferentes valores de cosns  usados no modelo de iluminação de Phong 42 Reflexão Especular Modelo de Iluminação de Phong  calculando o vetor de reflexão R: N cos  = L+S S = N cos  - L R= N cos  +S= = N cos  + N cos  - L = 2N cos  - L  = 2N (N.L) - L   R.V = (2 (N.L) N - L).V 43 reflexão especular não perfeita: modelo de Phong  cálculo: I especular    k s  I luz  R̂ Vˆ ns   R̂  L̂  2 N̂  L̂ N̂   R̂  2 N̂  L̂ N̂  L̂ 44 modelo de iluminação de Phong  inclui: ambiente, difusa e especular – Nota: para cada fonte de luz – Nota: para cada componente de cor      #luzes I total  k a  I ambiente   I i   k d  N̂  L̂  k s  R̂ Vˆ ns i1  45 modelo de iluminação de Phong  atenuação da fonte de luz baseada na distância – Ao sobrepor as projeções de 2 superfícies paralelas do mesmo material numa imagem não se consegue distinguir uma da outra, sejam quais forem as suas distâncias à fonte de luz.  Assim, introduz-se um fator de atenuação fatt na equação anterior – A energia desde uma fonte luz, que atinge parte de uma superfície, cai o inverso do quadrado da distância dL (distância que a luz percorre desde a fonte pontual até à superfície): f att  1 (d L ) 2 46 modelo de iluminação de Phong  atenuação da fonte de luz baseada na distância – No entanto, a escolha anterior (correta) não produz os efeitos desejados – Uma solução de compromisso é: fatt = min(1/(c1 + c2*d + c3*d2),1) c1,c2,c3: constantes associadas à fonte de luz  c1: constante que evita que o denominador fique muito pequeno quando a luz está muito perto  o cálculo do mínimo obriga a diminuir ou manter a intensidade, isto é, fatt

Use Quizgecko on...
Browser
Browser