Title: Ray Tracing Acceleration Techniques
1Ray 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 - DESS IMM Duberga Jean-Christophe et Perier
Christophe
2Ray 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.
3Ray Tracing Acceleration Techniques
- Plan
- I) Techniques daccélération générales.
- 1) hiérarchie sur les volumes
- 2) subdivision de lespace
- 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 larchitecture parallèle des
GPU - 2) Contraintes engendrées par les GPU
- 3) Exemple dimplémentation
- III) Conclusion.
4Ray Tracing Acceleration Techniques
- Évaluation de la complexité dun 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 dintersection
- I coût de lintersection
5Ray Tracing Acceleration Techniques
- Comment réduire le nombre de tests dintersection
entre les rayons et les volumes ?
6Ray Tracing Acceleration Techniques
- Bounding Box associée au modèle.
- - Découpage de lespace (Octree,BSP).
7Ray Tracing Acceleration Techniques
- Convex Hulls
- - Donne lenveloppe convexe dun objet
- - Cest une décomposition unique
- - Cest la plus petite.
8Ray Tracing Acceleration Techniques
- Découpage de lespace
- Subdivision uniforme de lespace
-
9Ray Tracing Acceleration Techniques
- Découpage de lespace
- Subdivision non uniforme de lespace
-
10Ray Tracing Acceleration Techniques
- Comparaisons
- Uniforme loin dêtre optimal, mais
simple à construire - Non uniforme plus optimal et à peine
plus compliqué
11Ray 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 dobjets.
- - Il faut tester si lintersection se trouve dans
le voxel courant !
12Ray Tracing Acceleration Techniques
13Ray Tracing Acceleration Techniques
- Directional techniques
- - Direction Cube
- - Ray coherence
- - Light Buffer
- - Ray classification
14Ray Tracing Acceleration Techniques
15Ray Tracing Acceleration Techniques
16Ray Tracing Acceleration Techniques
- Accélération Hardware (Vertex et Pixel Shader).
-
- 1) Tirer parti de larchitecture 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 à larchitecture en pipeline des
cartes graphiques.
17Ray 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 dinstructions et ne supportent
pas les branchements (pour linstant) - Les structures de données sont restreintes
(Vertex, Texture), il ny a pas de structure
prévue pour les voxels ou les rayons.
18Ray Tracing Acceleration Techniques
- Accélération Hardware (Vertex et Pixel Shader).
-
- 3) Exemple dimplé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. -
19Ray Tracing Acceleration Techniques
- Accélération Hardware (Vertex et Pixel Shader).
-
-
-
20Ray 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)
-
21Ray 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.
22Ray Tracing Acceleration Techniques
- Accélération Hardware (Vertex et Pixel Shader).
-
23Ray 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. -