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

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

24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227

Apresentações semelhantes


Apresentação em tema: "24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227"— Transcrição da apresentação:

1 24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227
Raytracing 24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227

2 Introdução Raytracing é um método de iluminação global, baseado em física que descreve a transferência de energia e radiação na cena Interações de luz na cena dependem das propriedades da luz e dos materiais, e da geometria dos componentes da cena (luz, objetos e observador) Cada superfície tem uma distribuição que caracteriza sua absorção, reflexão, transparência, etc. Para cada comprimento de onda Imagem é então gerada amostrando-se (traçando raios) para pontos da cena Caro computacionalmente, usa-se algumas técnicas para acelerar sua execução

3 Renderizando com Raytracing
Generalização da pintura de Durer que mostra projeção perspectiva Raytracing: Emita raios do olho para pontos de amostragem na foto virtual e calcule qual a cor/intensidade para cada ponto Ao invés de se emitir um número infinito de raios da fonte de luz para o objeto e depois para o observador, emite-se um número finito de raios do observador através dos pontos de amostragem para os objetos e depois para a fonte de luz (ou outro objeto)

4 Renderizando com Raytracing
Gere raios primários, que vão da posição de observação aos pontos de amostragem Encontre objeto mais próximo do observador ao longo do raio, isto é, ache a primeira interseção entre o raio e um objeto da cena Use modelo de iluminação para determinar luz no elemento de superfície mais próximo Gere raios secundários que se originam no objeto interceptado

5 Raytracing x Conversão de Scans
Para cada triângulo da cena... raytracing Para cada amostra na imagem

6 Raytracing x Conversão de Scans
Para cada objeto da cena para cada triângulo ou quadrilátero do objeto passe geometria do vértice e cores para OpenGL, que pintará todos os pontos interiores do triângulo no framebuffer Rápido, mas restrito ao modelo de iluminação do OpenGL e uso de triângulos e quadriláteros Raytracing: Para cada amostra na imagem determine qual objeto na cena é atingido primeiro pelo raio naquela amostra pinte aquela amostra com a cor do objeto naquele ponto

7 Gerando Raios Inicie um raio do ponto de observação P, na direção d que o faça interceptar um ponto no plano do filme cuja cor nós desejamos saber Pontos ao longo do raio tem a forma P + td onde P é o ponto inicial do raio, d é o vetor unitário com a direção do raio e t é um número real não-negativo O ponto P é o centro de projeção no volume de visão perspectivo

8 Gerando Raios Inicie com pontos no espaço da tela e transforme esses pontos em pontos no plano do filme da câmera 3D Qualquer plano ortogonal ao vetor olhar-para é um plano de filme adequado pois possui z constante no volume de visão canônico Escolha um plano como o plano do filme e crie uma função que mapeie pontos do espaço da tela para este plano. Por exemplo, pode-se usar o plano traseiro. Para converter as coordenadas, basta mapear coordenadas inteiras do espaço da tela para a faixa de valores [-1,1]

9 Gerando Raios Transforme ponto do plano do filme em um ponto no espaço do mundo O vetor de direção é determinado pelo CoP e este ponto Direção deve estar no espaço do mundo porque objetos são posicionados usando este espaço Isso incorre na utilização da transformação inversa a transformação de normalização, a transformação de visualização

10 Calculando Interseções
Se um objeto é definido implicitamente por uma função f tal que f(Q) = 0 se e somente se Q é um ponto na superfície do objeto, então o cálculo da interseção raio-objeto é relativamente fácil Pontos no raio tem a forma P + td, enquanto que um ponto Q na superfície do objeto tem f(Q) = 0, logo nós queremos saber para quais valores de t f(P + td) = 0 (se existirem)

11 Calculando Interseções
Transforme equação de superfície implícita em uma equação em funçao de t e a resolva A parte do objeto que você vê primeiro do ponto de observação é o menor valor não-negativo de t Para objetos definidos por mais de uma equação, escreve-se um conjunto de equações e inequações e as codificam como casos (switch). Pode ser generalizada para lidar com outras combinações de objetos, como objetos de CSG ou objetos definidos por somas de equações implícitas

12 Vetores Normais em Pontos de Interseção
Para se calcular a iluminação, nós devemos obter, dado um ponto na objeto, o vetor normal aquele ponto para que se possa calcular os ângulos entre a normal e os outros vetores Se a superfície engloba um sólido cujo interior é dado por então nós podemos achar o vetor normal no ponto (x, y, z) usando o gradiente naquele ponto: Lembre-se que o gradiente é umvetor com três componentes

13 Vetores Normais em Pontos de Interseção
No caso da esfera, nós temos Logo, as derivadas parciais são E o gradiente é n deve ser normalizado antes de ser usado em produtos internos! Em alguns casos extremos esse gradiente pode ser zero, e esse método falha. Nesse caso, use um gradiente vizinho que não seja zero

14 Pixels e Amostras No caso mais simples, escolhe-se as amostras nos centros dos pixels (amostra=pixel) Para se obter melhores resultados, usa-se superamostragem, utilizando mais de uma amostra por pixel (amostrapixel) Técnicas mais avançadas usam amostragem adfaptativa, onde se aumenta a densidade das amostras em áreas de mudança rápida (na geometria ou iluminação) Na amostragem estocástica, as amostras são posicionadas probabilisticamente Para resultados mais rápidos pode-se usar subamostragem, ou seja, menos amostras que pixels Use o máximo de amostras que o tempo permite beam tracing: trace um conjunto de raios vizinhos juntos Converte-se amostras em pixel usando-se um filtro para se obter uma média ponderada das amostras

15 Raytracing Recursivo Criação recursiva de novos raios na cena, que vão captar mais informação sobre sobre as interações de luz Inicie no ponto de interseção O ideal seria enviar raios em todas as direções (muito caro computacionalmente) Envie raios nas direções mais prováveis de contribução significativa: direção da luz (sombras) Ricocheteando nos objetos (reflexão especular) Através do objeto (transparência)

16 Sombras Cada luz na cena contribui para a cor e intensidade de um elemento de superfície Construa um raio da superfície para cada luz Teste se o raio intersecta outros objetos antes de chegar a luz Se não for o caso, a contribuição completa da luz pode ser contada Caso contrário, nenhuma contribuição é contada, a não ser que o objeto intersectado tenha um componente de transparência não-nulo objectIntensityλ = ambient + attenuation ∙ lightIntensityλ ∙ [diffuse + specular] Σ numLights light = 1

17 Transparência Iλ1 Iλ2 Para um polígono parcialmente transparente
polygon 1 Iλ2 polygon 2

18 Transparência Modela-se o desvio da luz em interfaces de materiais usando-se a lei de Snell medium 2 medium 1

19 Raytracing Recursivo Trace raios secundários nas interseções:
Luz: trace raio para cada fonte de luz. Se a fonte de luz está encoberta por um objeto opaco ela não contribui para a iluminação Reflexão especular: trace raio na direção refletida em relação a N Refração/transparência: trace raio na direção de refração ditada pela lei de Snell Crie novos raios de luz recursivamente até que a contribuição dos mesmos seja insignificante A nova equacão de iluminação Intensidade de raios secundários calculadas com mesma equação Fointes de luz contribuem para iluminação especular e difusa Limitações Reflexão recursiva inter-objetos é estritamente especular Reflexão recursiva inter-objetos difusa é tratada usando-se radiosidade

20 Raytracing Recursivo Iluminação indireta

21 Pipeline de Raytracing
Raytracer produz amostras visuais de um modelo - samples convolved with filter to form pixel image Pré-processamento adicional - pré-processamento do banco de dados dos objetos geralmente acelera cálculos smallest t generate secondary rays

22 Exemplos de Raytracing
Raytracer gratuito disponível online: Imagens produzidas usando-se raytracing:


Carregar ppt "24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227"

Apresentações semelhantes


Anúncios Google