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

23
Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware Timothy.J.Purcell, Ian Buck, Willian.R.Mark, Pat Hanrahan

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

Page 1: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

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

Page 2: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

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.

Page 3: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

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.

Page 4: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

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

Page 5: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

Ray Tracing Acceleration Techniques

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

volumes ?

Page 6: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

Ray Tracing Acceleration Techniques

- Bounding Box associée au modèle.

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

Page 7: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

Ray Tracing Acceleration Techniques

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

- C’est une décomposition unique

- C’est la plus petite.

Page 8: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

Ray Tracing Acceleration Techniques

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

Page 9: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

Ray Tracing Acceleration Techniques

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

Page 10: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

Ray Tracing Acceleration Techniques

Comparaisons :

Uniforme : loin d’être optimal, mais

simple à construire

Non uniforme : plus optimal et à peine plus compliqué

Page 11: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

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 !

Page 12: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

Ray Tracing Acceleration Techniques

Page 13: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

Ray Tracing Acceleration Techniques

Directional techniques:

- Direction Cube

- Ray coherence

- Light Buffer

- Ray classification

Page 14: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

Ray Tracing Acceleration Techniques

Page 15: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

Ray Tracing Acceleration Techniques

Page 16: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

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.

Page 17: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

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.

Page 18: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

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.

Page 19: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

Ray Tracing Acceleration Techniques

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

Page 20: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

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)

Page 21: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

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.

Page 22: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

Ray Tracing Acceleration Techniques

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

Page 23: Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.

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.