Ray Tracing Daniel de Vasconcelos Campos. Tópicos Problema proposto Análise do problema Algumas Técnicas Pesquisadas Algoritmo Implementado.

Slides:



Advertisements
Apresentações semelhantes
Presenter’s Notes Some Background on the Barber Paradox
Advertisements

A concepção dos três anéis de Joseph. S. Renzulli
Traçado de raios em tempo real Paulo Ivson
Otimização de Raytracing
Shading e Coordenadas Baricêntricas
Estruturas de Dados Espaciais
As Horas Que horas são?.
DIRETORIA ACADÊMICA NÚCLEO DE CIÊNCIAS HUMANAS E ENGENHARIAS DISCIPLINA: INGLÊS FUNDAMENTAL - NOITE PROFESSOR: JOSÉ GERMANO DOS SANTOS PERÍODO LETIVO
INF Computação Gráfica
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
INF 2063 Tópicos em CG II Visualização de Modelos Massivos Peter Dam.
Traçado de Raios de Cenas Dinâmicas na GPU
A.4. Trabalhando com elementos de biblioteca STL – Standard Template Libraby Disponibiliza um conjunto de classes templates, provendo algoritmos eficientes.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Sincronização de Processos (3)
Visible-Surface Ray Tracing
Modularização: funções e procedimentos
An Improved Illumination Model for Shaded Display
Iluminação e FotoRealismo Apresentação Luís Paulo Peixoto dos Santos.
Raytracing acelerado: Bounding Interval Hierarchy
Fazendo e Brincando: Confecção de Materiais para as Aulas de Inglês
Eletrônica Básica Aula 9
Sphere CDV Fundamentals of Spherical Parameterization for 3D Meshes MOTIVAÇÕES: - Remeshing - Morphing.
Fundamentos da Computação Gráfica Thiago Marques Toledo
Ray Tracing Patrícia Cordeiro Pereira Pampanelli
Universidade de Brasília Laboratório de Processamento de Sinais em Arranjos 1 Adaptive & Array Signal Processing AASP Prof. Dr.-Ing. João Paulo C. Lustosa.
Avaliação Constituição dos grupos de trabalho:
Lecture 4 Pressure distribution in fluids. Pressure and pressure gradient. Hydrostatic pressure 1.
Gestão de Operações ( Operations Management ) Especialização em Gestão da Produção Profs. Jorge Muniz e Valério Salomon Col.: Marco Aurélio e Ricardo “Taiúva”
10/ Daily Goal Sheet & Daily Checklist for Teachers Folha do Objetivo Diário & Checklist diário para os Professores By Por David Batty PSNC #7.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
S. Jacobsen – SIEMENS PTD EA Cigré/Brasil CE B5 – Proteção e Automação Seminário Interno de Preparação para a Bienal 2006 Rio de Janeiro, setembro/06.
Fundamentos da teoria dos semicondutores
AS REFORMAS DO ENSINO SUPERIOR COMPARANDO OS QUADROS LEGAIS EUROPEUS CNE Alberto Amaral
A Lexicon-Enhanced Method for Sentiment Classification: An Experiment on Online Product Reviews Bruno Andrade.
© 2012 Autodesk Autodesk Revit para projetos executivos de arquitetura Módulo 3: Utilizando Legends Tiago Marçal Ricotta Gerente de Projetos – Brasoftware.
FNI 2C EM 1 Transmission Electron Microscope. FNI 2C EM2 TEM Image of E. Coli.
Eletrônica Básica Aula 6 Ramo Estudantil UnB. Seção Brasília.
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Some techniques to Speed up Collision Detection Yalmar Ponce Atencio LCG/PESC/COPPE.
© 2012 Autodesk Autodesk Revit para projetos executivos de arquitetura Módulo 6: Quantitativos de áreas precisos Tiago Marçal Ricotta Gerente de Projetos.
Algoritmo de Rastreamento de Raios
© 2012 Autodesk Autodesk Revit para projetos executivos de arquitetura Módulo 5: Trabalhando em colaboração Tiago Marçal Ricotta Gerente de Projetos –
Autodesk Revit para projetos executivos de arquitetura Módulo 4: Representação gráfica de diversas fases Tiago Marçal Ricotta Gerente de Projetos – Brasoftware.
Semântica de Linguagens de Programação
Prof. Marcelo Gattass Gustavo Lopes Mourad.
3ª sessão e Sumário Comunicação intercultural: 1. a noção de cultura 2. língua e identidade 3. fatores “verticais” e.
MAC Engenharia de Software Marco A. GerosaIME / USP Mais sobre análise e Outros Diagramas UML MAC0332 Engenharia de Software Marco Aurélio Gerosa.
Ray Tracing Luís César Ray Tracing Turner Whitted,1979/80
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.
Redes Sociais Online ISCTE – Instituto Universitário de Lisboa MCCTI Mónica Oliveira 13 de Março de 2013.
Limit Equlibrium Method. Limit Equilibrium Method Failure mechanisms are often complex and cannot be modelled by single wedges with plane surfaces. Analysis.
© 2007 IBM Corporation Academic Initiative 07/05/07 Aula 2 – Parte 1: Java Basics Autores: Argemiro José de Juliano Marcos
Universidade de Brasília Laboratório de Processamento de Sinais em Arranjos 1 Adaptive & Array Signal Processing AASP Prof. Dr.-Ing. João Paulo C. Lustosa.
Falhas em componentes de sustentação – Cabos de Aço, Correntes e Ganchos.
Adriano Melo IDE Eclipse + Subclipse Link para download: \\cin01\scratch_astm$\eclipse.zip
Mecânica de Fluidos Ambiental 2015/2016
Recursividade e análise Cristiano Arbex Valle Vinicius Fernandes dos Santos
APPLICATIONS OF DIFFERENTIAL EQUATIONS - ANIL. S. NAYAK.
Estrutura da empresa Síntese SAP Best Practices. ©2014 SAP AG. All rights reserved.2 Estrutura Organizacional Baseline Package Área Contab. Custos 1000.
Where do I begin Por onde eu começo To tell a story of how great a love can be, A contar a história de quão grande um amor pode ser? The sweet love.
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 4.
Learning english with comics …………….. Aprendendo inglês com quadrinhos.
Fundamentos da Computação Gráfica
TQS - Teste e Qualidade de Software (Software Testing and Quality) Geração Automática de Casos de Teste com a Ferramenta.
Tópicos Avançados em Engenharia de Software
Pesquisadores envolvidos Recomenda-se Arial 20 ou Times New Roman 21.
Why Moringa Delight? Perfection in Growing and Processing We produce the highest quality Moringa under perfect growing conditions on the largest Moringa.
Transcrição da apresentação:

Ray Tracing Daniel de Vasconcelos Campos

Tópicos Problema proposto Análise do problema Algumas Técnicas Pesquisadas Algoritmo Implementado

Tópicos Problema proposto Análise do problema Algumas Técnicas Pesquisadas Algoritmo Implementado

Problema Proposto:...” Vejam o programa de traçado de raios que comentei na aula passada. A ideia é, sem tirar sua simplicidade, torná- lo muito mais eficiente.”

Tópicos Problema proposto Análise do problema Algumas Técnicas Pesquisadas Algoritmo Implementado

Análise do problema : Faster Intersection Tests Usually a large fraction of the compute time in ray tracing is spent in rayprimitive intersections. This was already noted in 1980 by Whitted [Whitted80],who reported 95% of his compute time to be spent on intersection computations.

Análise do problema : Método de Intersecção de primitivas utilizado no programa : Em “object.c”: double objIntercept( Object* object, Vector origin, Vector direction ) ->Armazena as equações dos planos, e verifica se a intersecção é interior à primitiva através de coordenadas baricêntricas.

Análise do problema : ->Não utiliza nenhuma técnica com “Spatial and Hierarchical Scene Subdivision”.

Análise do problema : A priori, duas possibilidades de otimização levantadas: 1- Melhorar a eficiência para se computar as intersecções com as primitivas;ou 2- De alguma forma, reduzir o número de intersecções a serem computadas.(Introduzindo-se alguma técnica de estrutura de dados espacial ou de volumes envolventes ).

Tópicos Problema proposto Análise do problema Algumas Técnicas Pesquisados Algoritmo Implementado

Algumas Técnicas pesquisadas Fast, Minimum storage Ray/Triangle Intersection [ Tomas Möller/Ben Trumbore] Ray/Triangle Intersection with Barycentric Coordinates[Rod Bogart/J.Arenberg] Bounding Volumes Hierarchies[4] Kd-Trees[5]

Algoritmo levantado para otimização do programa : Reduz significativamente o custo de armazenamento em memória, evitando armazenar as equação do plano onde está o triângulo. Não otimiza para todos os tipos de primitivas.

Algoritmo levantado para otimização do programa : /** * Check a ray against a triangle. * Code by Thomas Akenine-Moller */ bool Model::rayTriangleTest( const float tri[ 3 ][ 3 ], const float s[ 3 ], const float d[ 3 ], float &intersection, float &barU, float &barV ) { // Thomas Moller's triangle intersection code float edge1[ 3 ], edge2[ 3 ], tVec[ 3 ], pVec[ 3 ], qVec[ 3 ]; float det, invDet, u, v, tVal; Utils::sub3f( edge1, tri[ 1 ], tri[ 0 ] ); Utils::sub3f( edge2, tri[ 2 ], tri[ 0 ] ); Utils::cross( pVec, d, edge2 ); det = Utils::dot( edge1, pVec ); Utils::sub3f( tVec, s, tri[ 0 ] ); if ( det > 0.0f ) { u = Utils::dot( tVec, pVec ); if ( u det ) return false;

Algoritmo levantado para otimização do programa : return false; } else return false; invDet = 1.0f / det; tVal = Utils::dot( edge2, qVec ) * invDet; if ( tVal >= m_epsilon ) { intersection = tVal; barU = u * invDet; barV = v * invDet; return true; } return false; }

Bounding Volumes “A bounding volume is a simple geometric primitive (usually a box or a sphere) that can be intersected very quickly. If a ray misses the bounding volume (which can be checked quite cheaply), it does not have to be intersected with the complex primitive at all. Only rays hitting the bounding volume have to be checked also against the original primitive”[4]

Bounding Volumes /** * Generate the bounding boxes for each object. */ void Model::generateBounds() { for( int objectIndex = 0; objectIndex < m_numObjects; objectIndex++ ) { float *bounds = m_objects[ objectIndex ].m_bounds; float *vertices = m_objects[ objectIndex ].m_vertices; Utils::setf3( bounds, vertices ); Utils::setf3( &bounds[ 3 ], vertices ); // Set bounds to be exactly the first vertex for( int i = 1; i < m_objects[ objectIndex ].m_numVertices; i++ ) { if ( bounds[ 0 ] > vertices[ i * 3 ] ) bounds[ 0 ] = vertices[ i * 3 ]; if ( bounds[ 1 ] > vertices[ i * ] ) bounds[ 1 ] = vertices[ i * ]; if ( bounds[ 2 ] > vertices[ i * ] ) bounds[ 2 ] = vertices[ i * ]; if ( bounds[ 3 ] < vertices[ i * 3 ] ) bounds[ 3 ] = vertices[ i * 3 ]; if ( bounds[ 4 ] < vertices[ i * ] ) bounds[ 4 ] = vertices[ i * ]; if ( bounds[ 5 ] < vertices[ i * ] ) bounds[ 5 ] = vertices[ i * ]; }

Referências [1]Fast, Minimum storage Ray/Triangle Intersection [ Tomas Möller/Ben Trumbore] [2]Ray/Triangle Intersection with Barycentric Coordinates[Rod Bogart/J.Arenberg] [3]Physically Based Image Synthesis: from theory to implementation[Matt Pharr and Greg Humphreys [4]Realtime Ray Tracing andInteractive Global Illumination[Ingo Wald]

Referências [5]An Introductory Tutorial on Kd-trees [Andrew W. Moore]

Tópicos Problema proposto Análise do problema Algumas Técnicas Pesquisadas Algoritmo Implementado