Ray Tracing Acceleration Techniques A Survey of Ray

  • Slides: 23
Download presentation
Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et

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 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

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

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

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

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

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

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 uniforme de l’espace

Ray Tracing Acceleration Techniques Découpage de l’espace : -Subdivision non 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 à

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. -

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

Ray Tracing Acceleration Techniques Directional techniques: - Direction Cube - Ray coherence - Light

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

Ray Tracing Acceleration Techniques

Ray Tracing Acceleration Techniques Accélération Hardware (Vertex et Pixel Shader). 1) Tirer parti de

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

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.

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).

Ray Tracing Acceleration Techniques Accélération Hardware (Vertex et Pixel Shader). Organisation des structures de

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

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 Accélération Hardware (Vertex et Pixel Shader).

Ray Tracing Acceleration Techniques Conclusion : Le lancé de rayons en temps réel, bientôt

Ray Tracing Acceleration Techniques Conclusion : Le lancé de rayons en temps réel, bientôt une réalité ? Wald et al. 20 M tri/sec sur un PIII 800 Mhz Carr. Et al. 114 M tri/sec sur ATI 8500 (nbre entiers) Dans ce papier: 56 M tri/sec sans branchements 220 M tri/sec avec branchements Il reste le problème des scènes dynamiques.