Traçado de Raios de Cenas Dinâmicas na GPU

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Traçado de raios em tempo real Paulo Ivson
UNICAMP Universidade Estadual de Campinas Centro Superior de Educação Tecnológica Divisão de Telecomunicações Propagação de Ondas e Antenas Prof.Dr. Leonardo.
Inversor Trifásicos com Três Pernas
Otimização de Raytracing
A busca das mulheres para alcançar seu espaço dentro das organizações
Material pedagógico Multiplicar x 5 Clica!
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Introdução à Programação usando Processing Programação Gráfica 2D Animações Exercício Animações 14/10/09 Bruno C. de Paula 2º Semestre 2009 > PUCPR >
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Pesquisa Bibliográfica Disciplina de Metodologia da Pesquisa Profª Tereza Yoshiko Kakehashi 1.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 2.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 3.
Curso de ADMINISTRAÇÃO
EXPRESSÕES ARITMÉTICAS
Ismael Andrade Pimentel
Ray Tracing Disciplina: Fundamentos de Computação Gráfica Professor : Marcelo Gattass Allan Carlos Avelino Rocha Departamento de Informática.
Descarte por visibilidade
Raytracing Trabalho de Introdução a Computação Gráfica Alunos: Fabio Issao Nakamura Jeronimo Silvério Venetillo.
INF 2063 Tópicos em CG II Visualização de Modelos Massivos Peter Dam.
Dissertação de Mestrado Michel Alain Quintana Truyenque
FUNÇÃO MODULAR.
Aula 4 Nomes, Vinculações, Tipos e Escopos
EXEMPLOS DE ESTRUTURAS PROTENDIDAS
Experiments with Strassen’s Algorithm: from sequential to parallel
Mecânica dos Sólidos não Linear
BI-DIRECTIONAL PATH TRACING
Classes e objetos P. O. O. Prof. Grace.
Provas de Concursos Anteriores
Visualização Neural Visualizando dados neurais para a medicina
MECÂNICA - ESTÁTICA Cabos Cap. 7.
(CESPE/ Técnico Judiciário do TRT 17ª Região/ES) O Superior Tribunal de Justiça entende que o candidato aprovado em concurso público dentro do limite.
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Momentos de Inércia Cap. 10
Bolha Posição de máx. W2 Ponto de Estagnação
Dinâmica do Movimento Plano de um Corpo Rígido: Força e Aceleração
MECÂNICA - DINÂMICA Cinemática Plana de um Corpo Rígido Cap. 16.
Cinemática Plana de um Corpo Rígido Cap. 16
Cinemática Plana de um Corpo Rígido Cap. 16
MECÂNICA - ESTÁTICA Vetores Forças Cap. 2.
MECÂNICA - DINÂMICA Cinemática de uma Partícula Cap Exercícios.
Object Oriented Software Construction (MEYER, Bertrand)
Fundamentos da Computação Gráfica Thiago Marques Toledo
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Faculdade de Computação Universidade Federal de Mato Grosso do Sul
Coordenação Geral de Ensino da Faculdade
É u m e l e m e n t o f u n d a m e n t a l
C ORROPIOS, C ARDINCHAS E C ÃES G RANDES O LIVRO de José Paixão em imagens – com pistas de leitura propostas por por www.joraga.net.
Técnicas de Modelagem para Aplicações em Computação Gráfica
1 2 Observa ilustração. Cria um texto. Observa ilustração.
SairPróximo Itens de Seleção Probabilidades e Combinatória Cálculo de Probabilidades. Regra de Laplace. ITENS DE SELEÇÃO DOS EXAMES NACIONAIS E TESTES.
SairPróximo Itens de Seleção Probabilidades e Combinatória Cálculo Combinatório. Problemas de Contagem. ITENS DE SELEÇÃO DOS EXAMES NACIONAIS E TESTES.
MATRICIAL CONSULTORIA LTDA. PREFEITURA MUNICIPAL DE GARIBALDI 23/10/ : ATENÇÃO Os locais descritos nas planilhas anexas não correspondem ao total.
Hardware assisted rendering of csg models
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Olhe fixamente para a Bruxa Nariguda
Máquina de Turing Universal
Cinemática Plana de um Corpo Rígido Cap. 16
Dinâmica do Movimento Plano de um Corpo Rígido: Força e Aceleração
Ray Tracing Daniel de Vasconcelos Campos. Tópicos Problema proposto Análise do problema Algumas Técnicas Pesquisadas Algoritmo Implementado.
Mapeamento de Textura: Aspectos Gerais
Prof. Marcelo Gattass Gustavo Lopes Mourad.
Plano de Aulas  Estruturas de aceleração  Descarte contra volume de visão  Descarte por oclusão  Grafo de cena: OpenSceneGraph  Traçado de raios em.
Ray Tracing Autor: Osvaldo Ramos Tsan Hu Orientador: Prof. Marcio Lobo.
Transcrição da apresentação:

Traçado de Raios de Cenas Dinâmicas na GPU Autor: Paulo Ivson Netto Santos Orientador: Waldemar Celes Filho 23 de Março de 2009 psantos@tecgraf.puc-rio.br

Sumário Motivação Estado da Arte Contribuições do Trabalho Construção da Grade Uniforme Traçado de Raios Resultados Conclusão Trabalhos Futuros

Por que o traçado de raios? Por que usar a GPU? Motivação Por que o traçado de raios? Por que usar a GPU?

Vantagens Eficiência O(log(n)) na complexidade da cena Descarte de visibilidade e oclusão Instanciação Imagens: [Wald et al. 2003]

Vantagens Alta qualidade de imagem Efeitos de sombreamento Cálculos fisicamente corretos Iluminação Global Imagens: [Wald et al. 2003]

Iluminação Global Imagens: [Wald et al. 2003]

Placa Gráfica GFLOPS GPUs se tornaram eficientes e flexíveis Centenas de processadores em paralelo Suporta precisão de 32-bits de ponto flutuante Oferece muitos GFLOPS Placas gráficas em cada PC e estação de trabalho GFLOPS G80 = GeForce 8800 GTX G71 = GeForce 7900 GTX G70 = GeForce 7800 GTX NV40 = GeForce 6800 Ultra NV35 = GeForce FX 5950 Ultra NV30 = GeForce FX 5800 Imagens: Nvidia

Desafios Constantes enormes Precisa de muitos raios 1 raio ~ 1.000 ciclos da CPU Precisa de muitos raios ~1M pixels/quadro 4x anti-serrilhamento 25 quadros/seg 10 raios/pixel  Um bilhão de raios por segundo… Sem hardware especializado Rasterização tem evoluído há 20 anos! Sem API unificada OpenGL vs OpenRT

Como obter desempenho interativo Estado da Arte Como obter desempenho interativo

Explorar Paralelismo Agrupar raios próximos Instruções SIMD Raios primários Utilizar vários processadores Clusters de PCs Placas gráficas

Reduzir Interseções Interseção com primitivas 90% do processamento Estrutura de Aceleração (EA) Minimizar interseções Trocar pelo custo de percorrer a estrutura Reduzir complexidade do algoritmo O(n) → O(log(n))

Cenas Dinâmicas Movimento de corpo rígido Animação estruturada Transformar raio para espaço local do objeto Animação estruturada Pré-construir EAs para cada quadro-chave Deformar volumes envolventes da EA Não estruturada Reconstruir ou adaptar EA a cada quadro

Trabalhos Relacionados CPU Ray Tracing Animated Scenes using Coherent Grid Traversal [Wald et al. 2006] Ray Tracing Deformable Scenes using Dynamic Bounding Volume Hierarchies [Wald et al. 2007] Highly Parallel Fast KD-Tree Construction for Interactive Ray Tracing of Dynamic Scenes [Shevtsov et al. 2007] GPU Real-Time KD-Tree Construction on Graphics Hardware [Zhou et al. 2008]

Contribuições do Trabalho Solução proposta

Objetivos Explorar paralelismo da GPU Cenas dinâmicas Movimento de corpo rígido Deformações Movimento não-estruturado Estrutura de Aceleração Grade Uniforme Reconstruir quando houver movimento

Algoritmos na GPU Construção da Grade Uniforme em paralelo Percurso e interseção de raios Cálculo de sombreamento Texturas Sombras Reflexões

Resumo da Solução

Construção da Grade Uniforme Implementação em paralelo

Algoritmo Básico Encontrar AABB da cena Determinar no. de células Construir listas de triângulos contidos em cada célula Construir índice ID célula → lista de primitivas

Desafios em Paralelo Como paralelizar a construção das listas? Por primitiva Conflitos de escrita na mesma célula Por célula Inúmeros acessos a muitos dados Como construir índice para as listas? Determinar início e tamanho de cada lista

Observação Difícil Fácil Obter primitivas ocupadas por cada célula Obter células ocupadas por cada primitiva

Idéia Fundamental Escrever pares (ID célula, ID primitiva) Ordenados por ID primitiva Reordenar pares de acordo com ID célula

Algoritmo Obter quantas células cada primitiva ocupa Acumular valores da Etapa 1 Escrever pares (ID célula, ID primitiva) usando índices da Etapa 2 Ordenar pares da Etapa 3 Dado ID célula, encontrar sua lista dentre pares ordenados da Etapa 4

Etapa 1 Objetivos Implementação Exemplo Obter quantas células cada primitiva ocupa Implementação Fragment shader Estimativa pela AABB de cada triângulo Escrever total de células em cada pixel Exemplo

Etapa 2 Objetivos Implementação Exemplo Acumular valores da Etapa 1 Índices para listas de células ocupadas por primitiva Implementação Soma de prefixos em paralelo CUDA Data-Parallel Primitives (CUDPP) Acumular um valor adicional no final Exemplo

Etapa 3 – Considerações Objetivos Escrever pares (ID célula, ID primitiva) Usar índices acumulados da Etapa 2 Uma operação de escrita Várias operações de escrita Uma passada Fragment shader CUDA Geometry shader Várias passadas Vertex shader -

Etapa 3 – Solução Proposta Dado ID par na saída Obter ID célula e ID primitiva Dentre os valores da Etapa 2 Busca binária pelo maior valor Vmáx menor que ID par ID primitiva = índice de Vmáx na Etapa 2 ID célula = ID célula inicial + (ID par – Vmáx) Exemplo

Etapa 4 Objetivos Implementação Exemplo Ordenar pares da Etapa 3 de acordo com ID célula Implementação CUDA Radix-sort Exemplo

Etapa 5 Objetivos Implementação Exemplo Construir índices para acessar listas da Etapa 4 Implementação Busca binária pelo ID célula nas listas ordenadas Obter início e tamanho de cada lista Fragment shader Exemplo

Vantagens Paralelismo Banda de memória Implementação eficiente na GPU Sem conflitos de escrita Sem múltiplos valores de saída Banda de memória Poucos acessos a dados Implementação eficiente na GPU Soma de prefixos Ordenação Busca binária

Traçado de Raios Implementação na GPU

Algoritmo Conceitual

Rotinas Principais Percurso de raios Interseção raio x triângulo 3D-DDA [Amanatides and Woo 1987] Interseção raio x triângulo Coordenadas baricêntricas [Möller and Trumbore 1997] Sombreamento Phong + texturas Raios de sombra Raios de reflexão

Implementação na GPU Várias etapas Raios primários Raios de sombra interseções em sombra Raios primários Raios de sombra Sombreamento interseções cor final Reflexão: passada adicional com blend

Resultados Análise de desempenho

Roteiro Construção da Grade Uniforme Cenas de Teste Desempenho Cenas Estáticas Cenas Dinâmicas Trabalhos Relacionados Etapas de Visualização Configuração de testes Nvidia GeForce 8800 Ultra Resolução de 1024 x 1024

Construção da Grade Uniforme Tempo para reconstrução (ms) De 2x a 3x mais rápido que CPU Lento para cenas pequenas (API gráfica)

Cenas de Teste - CAD P40 (470K tris) MonoBR (112K tris) Boat

Cenas de Teste - Benchmarks Hand (16K tris) Ben (78K tris) Wood-doll (5K tris)

Cenas de Teste - Benchmarks Toys (11K tris) Forest (174K tris) Marbles (9K tris)

Cenas Estáticas - CAD Resultados P-40 Sombras Reflexões Escalabilidade Quadros por segundo (fps) Resultados P-40 Escalabilidade Descarte por oclusão Sombras Cerca de 50% mais lento Reflexões Pior para modelos grandes

Cenas Estáticas - Benchmarks Quadros por segundo (fps) “Forest” é pior caso para Grade Uniforme “Teapot in a stadium” Sombras Até 50% mais lento Reflexões Até 85% mais lento “Forest” pior (modelo grande)

Cenas Dinâmicas - Benchmarks Quadros por segundo (fps) Reconstrução da Grade Uniforme Custo pequeno (-10%) Exceto “Forest” (-30%)

Trabalhos Relacionados Quadros por segundo (fps) Desempenho até 4x mais rápido que BVH e Grade na CPU “Toys” Melhor que CPU kd-tree e pior que GPU kd-tree “Forest” Pior que ambas pesquisas com kd-tree

Etapas de Visualização Tempo de cada etapa (ms) Enviar dados para GPU é rápido Construção da Grade mais rápida que CPU Kd-tree mais lenta para ser construída Gargalo: etapa de traçado de raios

Demonstração Vídeos

Revisão dos resultados e proposta inicial Conclusão Revisão dos resultados e proposta inicial

Objetivos Atingidos Construção da Grade Uniforme na GPU Implementação em paralelo Rápida e escalável Traçado de raios de cenas dinâmicas Desempenho interativo Sombras, reflexões

Contribuições Construção da Grade Uniforme na GPU Mais rápido que pesquisas similares na CPU Traçado de raios na GPU Mais rápido que Grade e BVH na CPU Cenas esparsas Mais lento que kd-tree na CPU e GPU Várias melhorias possíveis

Melhorias e novas pesquisas Trabalhos Futuros Melhorias e novas pesquisas

Próximos Passos Grades hierárquicas Várias Grades (movimento de corpo rígido) Distância até próxima célula ocupada Outras estruturas na GPU (BIH, BVH) Traçar pacotes de raios Simulação física

Bibliografia AMANATIDES, J.; WOO, A. A fast voxel traversal algorithm for ray tracing. In: IN EUROGRAPHICS '87, p. 3-10, 1987. MOLLER, T. A.; TRUMBORE, B. Fast, minimum storage ray-triangle intersection. JGTOOLS: Journal of Graphics Tools, 2, 1997. SHEVTSOV, M.; SOUPIKOV, A. ; KAPUSTIN, A. Highly parallel fast kd-tree construction for interactive ray tracing of dynamic scenes. Comput. Graph. Forum, 26(3):395-404, 2007. WALD, I.; PURCELL, T. J.; SCHMITTLER, J.; BENTHIN, C. ; SLUSALLEK, P. Realtime Ray Tracing and its use for Interactive Global Illumination. In: Eurographics State of the Art Reports, 2003. WALD, I.; IZE, T.; KENSLER, A.; KNOLL, A. ; PARKER, S. G. Ray Tracing Animated Scenes using Coherent Grid Traversal. ACM Transactions on Graphics, p. 485-493, 2006. (Proceedings of ACM SIGGRAPH 2006). WALD, I.; BOULOS, S. ; SHIRLEY, P. Ray Tracing Deformable Scenes using Dynamic Bounding Volume Hierarchies. ACM Transactions on Graphics, 26(1), 2007. ZHOU, K.; HOU, Q.; WANG, R. ; GUO, B. Real-time kd-tree construction on graphics hardware. In: SIGGRAPH ASIA '08: ACM SIGGRAPH ASIA 2008 PAPERS, p. 1-11, New York, NY, USA, 2008. ACM.