1 / 22

Raytracing

24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227. Raytracing. Raytracing é um método de iluminação global, baseado em física que descreve a transferência de energia e radiação na cena.

sorley
Télécharger la présentation

Raytracing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 Introduçã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 conversão de scan Para cada triângulo da cena... raytracing Para cada amostra na imagem

  6. Raytracing x Conversão de Scans • 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 + tdonde 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 ftal 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 tf(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 te 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 é • ndeve 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. objectIntensityλ= ambient + attenuation ∙ lightIntensityλ ∙ [diffuse + specular] numLights Σ light = 1 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

  17. Transparência • Para um polígono parcialmente transparente Iλ1 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. smallest t generate secondary rays 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

  22. Exemplos de Raytracing • Raytracer gratuito disponível online: www.povray.org • Imagens produzidas usando-se raytracing: www.irtc.org

More Related