Gigavoxels: Un Pipeline De Rendu Basé Voxel Pour L'exploration
Total Page:16
File Type:pdf, Size:1020Kb
GigaVoxels : un pipeline de rendu basé Voxel pour l’exploration efficace de scènes larges et détaillées Cyril Crassin To cite this version: Cyril Crassin. GigaVoxels : un pipeline de rendu basé Voxel pour l’exploration efficace de scènes larges et détaillées. Mathématiques générales [math.GM]. Université de Grenoble, 2011. Français. NNT : 2011GRENM025. tel-00650161 HAL Id: tel-00650161 https://tel.archives-ouvertes.fr/tel-00650161 Submitted on 9 Dec 2011 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. 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 : un pipeline de rendu basé-Voxel pour l’exploration efficace de scènes larges et détaillées. 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 Remerciements 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 Résumé Dans cette thèse, nous présentons une nouvelle approche efficace pour le rendu de scènes vastes et d’objets détaillés en temps réel. Notre approche est basée sur une nouvelle représentation pré-filtrée et volumique de la géométrie et un lancer de cone basé-voxel qui permet un rendu précis et haute performance avec une haute qualité de filtrage de géométries très détaillées. Afin de faire de cette représentation voxel une primitive de rendu standard pour le temps-réel, nous proposons une nouvelle approche basée sur les GPUs conçus entièrement pour passer à l’échelle et supporter ainsi le rendu des volumes de données très volumineux. Notre système permet d’atteindre des performances de rendu en temps réel pour plusieurs milliards de voxels. Notre structure de données exploite le fait que dans les scènes CG, les détails sont souvent concentrées sur l’interface entre l’espace libre et des grappes de densité et montre que les modèles volumétriques pourrait devenir une alternative intéressante en tant que rendu primitif pour les appli- cations temps réel. Dans cet esprit, nous permettons à un compromis entre qualité et performances et exploitons la cohérence temporelle. Notre solution est basée sur une représentation hiérarchiques des données adaptées en fonction de la vue actuelle et les informations d’occlusion, couplé à un algorithme de rendu par lancer de rayons efficace. Nous introduisons un mécanisme de cache pour le GPU offrant une pagination très efficace de données dans la mémoire vidéo et mis en ?uvre comme un processus data-parallel très efficace. Ce cache est couplé avec un pipeline de production de données capable de charger dynamiquement des données à partir de la mémoire centrale, ou de produire des voxels directement sur le GPU. Un élément clé de notre méthode est de guider la production des données et la mise en cache en mémoire vidéo directement à partir de demandes de données et d’informations d’utilisation émises directement lors du rendu. Nous démontrons notre approche avec plusieurs applications. Nous montrons aussi comment notre modèle géométrique pré-filtré et notre lancer de cones approximé peuvent être utilisés pour calculer très efficacement divers effets de flou ainsi d’éclairage indirect en temps réel. 8 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.