Gigavoxels: a Voxel-Based Rendering Pipeline for Efficient
Total Page:16
File Type:pdf, Size:1020Kb
THÈSE Pour obtenir le grade de DOCTEUR DE L’UNIVERSITÉ DE GRENOBLE Spécialité : Mathématiques Informatique Arrêté ministériel : 6 Aout 2006 Présentée par Cyril Crassin Thèse dirigée par Fabrice Neyret préparée au sein du Laboratoire Jean Kuntzmann dans l’école doctorale de Mathématiques, Sciences et Technologies de l’Information, Informatique GigaVoxels: A Voxel-Based Rendering Pipeline For Efficient Exploration Of Large And Detailed Scenes Thèse soutenue publiquement le 12 Juillet 2011, devant le jury composé de : Mathias Paulin Professeur, Université Paul Sabatier, Toulouse, Rapporteur Michael Wimmer Associate Professor, Technische Universität, Wien, Rapporteur Jean-Michel Dischler Professeur, Université de Strasbourg, Examinateur Carsten Dachsbacher Professor, Karlsruhe Institute of Technology, Examinateur Miguel Sainz Director of Developer Technology, NVIDIA, Examinateur Francois Sillion Directeur de Recherche, INRIA, Examinateur Fabrice Neyret Directeur de Recherche, CNRS, Directeur de thèse 2 Acknowledgements Je tiens tout d’abord à remercier Fabrice pour son encadrement tout au long de ces 4 années de thèse qui furent extrêmement enrichissantes, tant d’un point de vue scientifique que personnel. J’ai énor- mément apprécié sa disponibilité, son regard toujours objectif et pertinent, ainsi que son implication, sa passion et son admirable vision de la recherche. Je remercie également tous les anciens et les nouveaux membres de l’équipe ARTIS pour leur bonne humeur et la formidable ambiance que tous contribuent à créer et à perpétuer. Un merci particulier à mes co-bureaux et amis, Pierre et Olivier, pour avoir supporté mon bazar et mes mauvais jeux de mots pendant plus de 2 ans. Un grand merci également à Elmar pour toute l’aide qu’il m’a apportée durant cette thèse, ainsi qu’à Eric et à Charles pour leur appui mathématique précieux. Je n’oublie pas non plus EVASION qui fut mon équipe « d’origine » et dans laquelle j’ai également passé d’excellents moments. Puisse « l’esprit d’iMAGIS » continuer à vivre encore longtemps ! Je tiens également à remercier Mathias Paulin et Michael Wimmer d’avoir accepté de rapporter ma thèse malgré les délais assez courts que j’ai dû leur imposer. Un grand merci également à Jean-Michel Dischler d’avoir pris part à mon jury en tant qu’examinateur ainsi qu’à Francois Sillion d’avoir ac- cepté de présider ce jury. I would like to thank also Carsten Dachsbacher for being part of my jury, as well as Miguel Sainz for his trust and the great opportunity he gave me to work for a company I have always dreamed to work for. Un grand merci également à Emmanuel Melin qui a cru en moi depuis tant d’années, et sans qui je n’en serais sans doute pas où j’en suis aujourd’hui, ainsi qu’à Sylvain Ju- bertie pour son amitié, son soutien et pour m’avoir donné le goût de la recherche. Je tiens également à remercier Sarah Janvier Lewis pour le travail extraordinaire de relecture et correction qu’elle effectué sur mon manuscrit. Pour finir, je voudrais remercier tous mes amis pour le soutient et la bonne humeur qu’ils ont pu m’apporter. Un merci particulier à Adeline et à Maxime, mes camarades de galère pendant 5 ans, pour tous les moments qu’on a pu partager. Je remercie également ma famille pour son soutient tout au long de mes études. Enfin, je remercie bien sûr Marlène pour tout son soutien, sa patience (il lui en a fallu), son courage (il lui en a fallu également) et sa compréhension durant ces trois années. 4 Abstract In this thesis, we present a new approach to efficiently render large scenes and detailed objects in real- time. Our approach is based on a new volumetric pre-filtered geometry representation and an asso- ciated voxel-based approximate cone tracing that allows an accurate and high performance rendering with high quality filtering of highly detailed geometry. In order to bring this voxel representation as a standard real-time rendering primitive, we propose a new GPU-based approach designed to entirely scale to the rendering of very large volumetric datasets. Our system achieves real-time rendering performance for several billion voxels. Our data structure exploits the fact that in CG scenes, details are often concentrated on the interface between free space and clusters of density and shows that volumetric models might become a valuable alternative as a rendering primitive for real-time applications. In this spirit, we allow a quality/performance trade-off and exploit temporal coherence. Our solution is based on an adaptive hierarchical data representation depending on the current view and occlusion information, coupled to an efficient ray-casting rendering algorithm. We introduce a new GPU cache mechanism providing a very efficient paging of data in video memory and imple- mented as a very efficient data-parallel process. This cache is coupled with a data production pipeline able to dynamically load or produce voxel data directly on the GPU. One key element of our method is to guide data production and caching in video memory directly based on data requests and usage information emitted directly during rendering. We demonstrate our approach with several applications. We also show how our pre-filtered geom- etry model and approximate cone tracing can be used to very efficiently achieve blurry effects and real-time indirect lighting. 6 Publications The work presented in this thesis appeared in the following articles, proceedings, books, invited talks and posters. Book chapters [CNSE10] Cyril Crassin, Fabrice Neyret, Miguel Sainz, and Elmar Eisemann. Efficient Rendering of Highly Detailed Volumetric Scenes with GigaVoxels. In book: GPU Pro, chapter X.3, pages 643–676. A K Peters, 2010. International conferences and journals [BNM+08] Antoine Bouthors, Fabrice Neyret, Nelson Max, Eric Bruneton, and Cyril Crassin. Inter- active multiple anisotropic scattering in clouds. In ACM Symposium on Interactive 3D Graphics and Games (I3D), 2008. [CNLE09] Cyril Crassin, Fabrice Neyret, Sylvain Lefebvre, and Elmar Eisemann. Gigavoxels : Ray-guided streaming for efficient and detailed voxel rendering. In ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (I3D). ACM, feb 2009. [CNS+11] Cyril Crassin, Fabrice Neyret, Miguel Sainz, Simon Green, and Elmar Eisemann. In- teractive indirect illumination using voxel cone tracing. In [ONGOING SUBMISSION] Computer Graphics Forum (Pacific Graphics 2011), September 2011. National conferences [BNM+07] Antoine Bouthors, Fabrice Neyret, Nelson Max, Eric Bruneton, and Cyril Crassin. Rendu interactif de nuages réalistes. In AFIG ’07 (Actes des 20èmes journées de l’AFIG), pages 183–195. AFIG, November 2007. Talks ans posters [CNL+09] Cyril Crassin, Fabrice Neyret, Sylvain Lefebvre, Miguel Sainz, and Elmar Eisemann. Beyond triangles : Gigavoxels effects in video games. In SIGGRAPH 2009 : Technical talk + Poster (Best poster award finalist). ACM SIGGRAPH, August 2009. [CNS+11a] Cyril Crassin, Fabrice Neyret, Miguel Sainz, Simon Green, and Elmar Eisemann. Interac- tive indirect illumination using voxel cone tracing: A preview. Poster ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (I3D). Best poster award., feb 2011. [CNS+11b] Cyril Crassin, Fabrice Neyret, Miguel Sainz, Simon Green, and Elmar Eisemann. Inter- active indirect illumination using voxel cone tracing: An insight. In SIGGRAPH 2011 : Technical talk. ACM SIGGRAPH, August 2011. Industry invited talks [CNE09] Cyril Crassin, Fabrice Neyret, and Elmar Eisemann. Building with bricks: Cuda-based gigavoxel rendering. In Intel Visual Computing Research Conference, 2009. [Cra09] Cyril Crassin. Gigavoxels: Voxels come into play. Crytek Conference Talk, nov 2009. 8 Contents 1 Introduction and motivation 15 1.1 Motivation: Real-time rendering of large and complex scenes . 15 1.1.1 Limits of current mesh-based rendering approaches . 16 1.1.2 Voxel-based approach to geometry pre-filtering . 23 1.2 Other applications and usage of voxel representations . 27 1.2.1 Voxels for volumetric materials and effects . 27 1.2.2 Voxels in special effects ............................ 27 1.2.3 Scan and simulation data ............................ 28 1.2.4 Voxels as an intermediary representation for authoring . 28 1.3 GPU development .................................... 30 1.3.1 Hardware generations ............................. 30 1.3.2 Compute mode ................................. 30 1.3.3 Limited video memory, limited bandwidth from the CPU . 30 1.3.4 Memory regions ................................ 31 1.3.5 Increasing gap between memory access speed and processing power . 32 1.4 Problems and objectives ................................ 33 1.4.1 Problems with voxel-based rendering ..................... 33 1.4.2 Target scenes .................................. 34 1.4.3 Objectives .................................... 35 1.5 Contributions ...................................... 36 2 Related work 37 2.1 Anti-aliasing filtering .................................. 37 2.1.1 Geometry anti-aliasing filtering ........................ 37 2.1.2 Texture filtering ................................. 39 2.2 Volume representations in Computer Graphics ..................... 42 2.2.1 Adding details and realistic appearance .................... 42 2.2.2 Octree textures : sparse solid-texturing .................... 43 2.2.3 Brick maps ................................... 44 2.3 Volume rendering for scientific visualization ...................... 46 2.3.1 Physics of volume light transport ....................... 46 10 CONTENTS 2.3.2 Main volume rendering approaches .....................