Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et...

Post on 03-Apr-2015

115 views 1 download

Transcript of Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et...

Ray Tracing Acceleration Techniques

A Survey of Ray Tracing Acceleration TechniquesJames Arvo et David Kirk

Ray Tracing on Programmable Graphics HardwareTimothy.J.Purcell, Ian Buck, Willian.R.Mark, Pat Hanrahan

DESS IMM :Duberga Jean-Christophe et Perier Christophe

Ray Tracing Acceleration Techniques

Problématique:

Le lancé de rayons est réputé comme une méthode de rendu lente, l’écartant des méthodes de rendu en temps réel.

Ray Tracing Acceleration Techniques

Plan :

I) Techniques d’accélération générales.1) hiérarchie sur les volumes

2) subdivision de l’espace

3) Réduction du nombre de rayons

- Light Buffer

- Ray Coherence

- Ray Classification

II) Accélération Hardware (Vertex et Pixel Shader).1) Tirer parti de l’architecture parallèle des GPU

2) Contraintes engendrées par les GPU

3) Exemple d’implémentation

III) Conclusion.

Ray Tracing Acceleration Techniques

Évaluation de la complexité d’un Ray tracer :

n * B + m * I

n: Nombre de rayons testés contre le volume englobant

m: Nombre de rayons qui touche le volume englobant

B: coût de chaque test d’intersection

I: coût de l’intersection

Ray Tracing Acceleration Techniques

Comment réduire le nombre de tests d’intersection entre les rayons et les

volumes ?

Ray Tracing Acceleration Techniques

- Bounding Box associée au modèle.

- Découpage de l’espace (Octree,BSP…).

Ray Tracing Acceleration Techniques

Convex Hulls:- Donne l’enveloppe convexe d’un objet

- C’est une décomposition unique

- C’est la plus petite.

Ray Tracing Acceleration Techniques

Découpage de l’espace :-Subdivision uniforme de l’espace

Ray Tracing Acceleration Techniques

Découpage de l’espace :-Subdivision non uniforme de l’espace

Ray Tracing Acceleration Techniques

Comparaisons :

Uniforme : loin d’être optimal, mais

simple à construire

Non uniforme : plus optimal et à peine plus compliqué

Ray Tracing Acceleration Techniques

Deux problèmes :-Un objet peut intersecter plusieurs voxels.

- On peut réduire le nombre de tests !

(Algo de la Mailing Box)

-On peut oublier des d’objets.- Il faut tester si l’intersection se trouve dans le voxel

courant !

Ray Tracing Acceleration Techniques

Ray Tracing Acceleration Techniques

Directional techniques:

- Direction Cube

- Ray coherence

- Light Buffer

- Ray classification

Ray Tracing Acceleration Techniques

Ray Tracing Acceleration Techniques

Ray Tracing Acceleration Techniques

Accélération Hardware (Vertex et Pixel Shader).

1) Tirer parti de l’architecture parallèle des GPU :

Les calculs sur les rayons sont relativement cours mais très nombreux.

On pourrait donc imaginer de les exécuter en parallèle grâce à l’architecture en pipeline des cartes graphiques.

Ray Tracing Acceleration Techniques

Accélération Hardware (Vertex et Pixel Shader).

2) Contraintes engendrées par les GPU :

Les GPU sont très spécialisés, ils ont donc un très petit jeu d’instructions et ne supportent pas les branchements (pour l’instant)

Les structures de données sont restreintes (Vertex, Texture…), il n’y a pas de structure prévue pour les voxels ou les rayons.

Ray Tracing Acceleration Techniques

Accélération Hardware (Vertex et Pixel Shader).

3) Exemple d’implémentation Timothy.J.Purcell, Ian Buck, Willian.R.Mark et Pat Hanrahan

proposent une méthode pour implémenter un ray tracer dans un programme de Pixel Shader qui sera donc exécuté sur la carte graphique et tirera parti de son architecture parallèle.

Ray Tracing Acceleration Techniques

Accélération Hardware (Vertex et Pixel Shader).

Ray Tracing Acceleration Techniques

Accélération Hardware (Vertex et Pixel Shader). Organisation des structures de données (tenant compte des contraintes vues précédemment)

Ray Tracing Acceleration Techniques

Accélération Hardware (Vertex et Pixel Shader).

Deux versions du programme :- Version avec boucle en une seule passe.

- Version sans boucle en multi passes.

Ray Tracing Acceleration Techniques

Accélération Hardware (Vertex et Pixel Shader).

Ray Tracing Acceleration Techniques

Conclusion :

Le lancé de rayons en temps réel, bientôt une réalité ?

Wald et al. 20M tri/sec sur un PIII 800Mhz

Carr. Et al. 114M tri/sec sur ATI 8500 (nbre entiers)

Dans ce papier:

56M tri/sec sans branchements

220M tri/sec avec branchements

Il reste le problème des scènes dynamiques.