Universitat Polit`ecnica de Catalunya Facultat d’Informa`tica de Barcelona T`ecniques per la visualitzacio´ d’ombres suaus en temps real per Rub´en Abad Sa´nchez Director: Antonio Chica Calaf Departament: Llenguatges i Sistemes Informa`tics (LSI) 15 de gener de 2014 Agra¨ıments Abans de comen¸car aquest projecte m’agradaria agrair a totes aquelles persones que d’una manera o altra han fet possible la realitzaci´o i l’`exit d’aquest projecte. Primer de tot agrair al director del projecte Antoio Chica, per la seva supervisi´o, les seves intu¨ıcions sobre els possibles errors a l’hora d’implementar els algorismes i orientaci´o en el moment d’escollir projecte. Tamb´e a la fam´ılia, les amistats i, especialment, a la meva parella, per escoltar-me i mostrar inter`es durant tot el projecte. Als companys de feina que m’han traslladat tot el seu entusiasme i les ganes de treure les coses endavant. i ´ Index Agra¨ıments i Llista de Figures v Llista de Taules ix I Introduccio´ del projecte 1 1 Introducci´o 2 1.1 Objectius del projecte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Organitzaci´o de la mem`oria . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Nocions sobre el comportament real de la llum i les ombres 4 2.1 Il·luminaci´o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.1 Models d’il·luminaci´o . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.1.1 Models locals . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.1.2 Models globals . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.2 Il·luminaci´o en temps real als gr`afics per computador . . . . . . . . 8 2.1.2.1 BRDFs difosos . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.2.2 BRDFs especulars . . . . . . . . . . . . . . . . . . . . . . 9 2.1.2.3 Llum ambient . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.2.4 Elmodeld’il·luminaci´ohabitualalesaplicacionsentemps real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.2.5 Il·luminaci´o per v`ertex vs. il·luminaci´o per p´ıxel . . . . . 12 2.2 Ombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.1 Conceptes b`asics d’ombres . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.1.1 Temps real vs. frame rate interactiu . . . . . . . . . . . . 14 2.2.1.2 Qu`e s´on les ombres? . . . . . . . . . . . . . . . . . . . . . 14 2.2.2 Ombres en temps real . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.2.1 Algorisme de volums d’ombra . . . . . . . . . . . . . . . 16 2.2.2.2 Algorisme de mapejat d’ombres . . . . . . . . . . . . . . 17 II Desenvolupament del projecte 19 3 Preproc´es 20 3.1 La llibreria Assimp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 ii Contents iii 3.2 Adaptaci´o de les estructures d’Assimp al projecte . . . . . . . . . . . . . . 21 3.3 LLum, camera i acci´o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4 Oclusi´o ambient a espai de pantalla 23 4.1 Introducci´o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2 L’idea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.3 Generaci´o dels inputs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.4 Mostreig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.5 Difuminant els resultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5 Mapejat d’ombres 38 5.1 Introducci´o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.2 Com funciona? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3 Algorisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.3.1 Render de l’escena des del punt de vista de la llum . . . . . . . . . 39 5.3.2 Render de l’escena des del punt de vista de l’observador amb ombres 41 5.4 Problemes i errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.4.1 Shadow Acne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.4.2 Peter Panning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.4.3 Aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.5 Solucions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 6 Percentage-Closer Filtering 47 6.1 Introducci´o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.2 Algorisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7 Percentage-Closer Soft Shadows 51 7.1 Introducci´o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.2 Algorisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.2.1 Cerca d’objectes bloquejants . . . . . . . . . . . . . . . . . . . . . 52 7.2.2 Estimaci´o de la mida de la penombra . . . . . . . . . . . . . . . . 54 7.2.3 Filtrat din`amic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 8 Variance Shadow Maps 57 8.1 Introducci´o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.2 Algorisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.3 Biasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 9 Cascaded Shadow Maps 62 9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 9.2 Algorisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.2.1 Generaci´o dels mapes d’ombres . . . . . . . . . . . . . . . . . . . . 63 9.2.2 Render final de l’escena . . . . . . . . . . . . . . . . . . . . . . . . 69 10 An`alisi i disseny 71 10.1 An`alisi de requisits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 10.2 Especificaci´o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 10.3 Disseny de l’aplicaci´o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Contents iv 10.4 Tecnologies utilitzades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 III Resultats, planificaci´o i conclusions 75 11 Resultats 76 11.1 Oclusi´o Ambient a Espai de Pantalla (SSAO) . . . . . . . . . . . . . . . . 76 11.1.1 Resultats visuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 11.1.2 Rendiment de l’algorisme . . . . . . . . . . . . . . . . . . . . . . . 82 11.1.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 11.2 Mapejat d’ombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 11.2.1 Resultats visuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 11.2.1.1 Mapejat d’ombres simple . . . . . . . . . . . . . . . . . . 86 11.2.1.2 Variance Shadow Maps . . . . . . . . . . . . . . . . . . . 87 11.2.1.3 Percentage Closer Filtering . . . . . . . . . . . . . . . . . 88 11.2.1.4 Percentage Closer Soft Shadows . . . . . . . . . . . . . . 90 11.2.2 Rendiment dels algorismes . . . . . . . . . . . . . . . . . . . . . . . 91 11.2.2.1 Mapejat d’ombres simple i Variance Shadow Maps . . . . 91 11.2.2.2 PCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 11.2.2.3 PCSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 11.2.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 11.3 Cascaded Shadow Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 11.3.1 Resultats visuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 11.3.2 Rendiment de l’algorisme . . . . . . . . . . . . . . . . . . . . . . . 96 11.3.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 12 Planificaci´o i an`alisi econ`omica 98 12.1 Planificaci´o temporal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 12.2 An`alisi econ`omica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 13 Conclusions i treball futur 102 IV Annexos 103 A Pipeline d’OpenGL 104 B Manual d’usuari 107 Bibliografia 114 ´ Index de figures 2.1 Els tres punts utilitzats en el model d’il·luminaci´o local . . . . . . . . . . 5 2.2 Visualitzaci´o de la BRDF per a una u´nica direcci´o d’entrada . . . . . . . 6 2.3 Feix de llum d’entrada que cobreix una `area de 1/cosθ . . . . . . . . . . . 9 2.4 Casos especials de BRDFs . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.5 Il·luminaci´o per v`ertex i per p´ıxel. Imatge extreta de [4] . . . . . . . . . . 12 2.6 La mateixa imatge sense i amb ombres. A la imatge amb ombres s’ent´en millor la relaci´o entre els diferents objectes. Imatge extreta de [5] . . . . . 13 2.7 Ungeneradord’ombraprojectaunaombraiunapenombraquan´esil·luminat per una font de llum. Imatge extreta de [5] . . . . . . . . . . . . . . . . . 14 2.8 Com m´es lluny es troben l’objecte que genera l’ombra del que la rep m´es difuminada es troba l’ombra. Imatge extreta de [5] . . . . . . . . . . . . . 15 2.9 Un p´ıxel es troba a l’ombra si el comptador ´es positiu. Imatge extreta de [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.10 A la dreta es mostra el mapa d’ombres generat des del punt de vista de la llum. Al mig la transformaci´o tant des de punt de vista de l’observador (mostra en blau) com des de punt de vista de la llum (mostra en taronja). Al costat esquerre es pot veure el render final amb el mapejat d’ombres aplicat. Imatge extreta de [5] . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.1 Al’esquerral’estructuradedadespr`opiad’Assimpialadretal’estructura de dades del projecte per emmagatzemar el model carregat. . . . . . . . . 21 4.1 La base de l’oclusi´o ambient recau en trobar quanta part de la semiesfera que envolta el punt est`a bloquejada per l’ambient. Imatge extreta de [8] . 24 4.2 A l’esquerra es pot veure una figura sense oclusi´o ambient. A la dreta s’aprecia l’efecte global d’enfosquiment i resaltaci´o que es produeix en aplicar l’oclusi´o ambient. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.3 A l’esquerra es mostra la textura amb les normals i a la dreta la textura amb les profunditats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.4 A l’ull hum`a la imatge generada costa d’entendre, per`o ´es el mateix re- sultat que les imatges interiors aprofitant els canals RGB per codificar les components de les normals i el canal alfa per codificar les profunditats. . . 28 4.5 El factor d’oclusi´o dep`en directament de la difer`encia de profunditats entre la mostra i el punt tractat. Imatge extreta de [9] . . . . . . . . . . . 30 4.6 Proc´es de mostreig aleatori. Imatge extreta de [9] . . . . . . . . . . . . . . 31 4.7 Resultat final de l’oclusi´o ambient a espai de pantalla. . . . . . . . . . . . 33 4.8 Idea de com aplicar un filtre gausi`a. . . . . . . . . . . . . . . . . . . . . . 34 v List of Figures vi 4.9 Primera imatge model sense oclusi´o ambient. Segona imatge amb oclu- si´o ambient a espai de pantalla. Tercera imatge oclusi´o ambient amb difuminat gaussi`a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.1 Shadow Acne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2 Explicaci´o shadow acne. Imatge extreta de [12]. . . . . . . . . . . . . . . . 44 5.3 Shadow acne solucionat. Problema peter panning. . . . . . . . . . . . . . 45 6.1 Comparativa de mostreig al mapejat d’ombres b`asic i aplicant l’algorisme PCF. Imtage extreta de [13]. . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.2 Explicaci´o de consultes al mapa d’ombres amb 4 mostres. . . . . . . . . . 49 6.3 A la dreta resultat de PCF amb una mostra. A l’esquerra resultat de PCF amb 34 mostres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7.1 Variables implicades per trobar l’objecte que bloqueja la llum. Imatge extreta de [15]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.2 Regio´ de cerca dels objectes bloquejants. Imatge extreta de [14]. . . . . . 53 7.3 A la dreta resultat de PCSS amb una mostra per al filtratge i la llum puntual (lightSize = 1). A l’esquerra resultat de PCSS amb 12 mostres per al filtratge i 14 de mida de llum (lightSize = 14). . . . . . . . . . . . . 56 8.1 Resultats de Variance Shadow Maps. . . . . . . . . . . . . . . . . . . . . . 61 9.1 Particio´ en diversos mapes d’ombres. L’arbre m´es a la dreta es captura al mapa d’ombres m´es proper a l’observador i els altres dos al m´es lluny`a. Imatge extreta de [18]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.2 Particions del frustum de la c`amera. Imatge extreta de [18]. . . . . . . . . 64 9.3 Frustums de visi´o de la llum. Imatge extreta de [18]. . . . . . . . . . . . . 65 9.4 Comparaci´o de l’algorisme Cascaded Shadow Maps. A la dreta ombres ambl’algorismesenzilldelmapejatd’ombres. Al’esquerraCascadedSha- dow Maps amb quatre particions. . . . . . . . . . . . . . . . . . . . . . . . 70 10.1 Diagrama de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 10.2 Diagrama de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 11.1 Render b`asic del model al qual se li aplicar`a l’oclusi´o ambient a espai de pantalla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 11.2 Imatge de la dreta sense filtre gaussi`a. Imatge de l’esquerra amb filtre gaussi`a. S’estan prenent 5 mostres per punt tractat. . . . . . . . . . . . . 77 11.3 Imatge de la dreta sense filtre gaussi`a. Imatge de l’esquerra amb filtre gaussi`a. S’estan prenent 16 mostres per punt tractat. . . . . . . . . . . . . 78 11.4 Imatges de la dreta sense filtre gaussi`a. Imatges de l’esquerra amb filtre gaussi`a. Comen¸cant per la fila d’imatges superior es mostren els resultats per 30, 60 i 100 mostres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 11.5 Imatges de la dreta sense filtre gaussi`a. Imatges de l’esquerra amb filtre gaussi`a. Comen¸cant per la fila d’imatges superior es mostren els resultats amb radi 1, 4, 10 i 21. El nombre de mostres per tots ´es de 16 i la for¸ca de 70. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 List of Figures vii 11.6 Imatges de la dreta sense filtre gaussi`a. Imatges de l’esquerra amb filtre gaussi`a. Comen¸cant per la fila d’imatges superior es mostren els resultats amb for¸ca 10, 30 i 100. El nombre de mostres per tots ´es de 16 i el radi 7. 81 11.7 Diagrama intu¨ıtiu de l’execuci´o de l’algorisme d’oclusi´o ambient a espai de pantalla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 11.8 Gr`aficaderendimentdel’algorismed’oclusi´oambientaespaidepantalla. Relaci´o entre les mides de pantalla i el nombre de mostres preses per cada punt de la pantalla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 11.9 Model utilitzat per als resultats dels algorismes de mapes d’ombres. . . . 84 11.10Posici´o global de la llum. . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 11.11A dalt a l’esquerra mapes d’ombres b`asics. A dalt a la dreta PCF. A baix a l’esquerra PCSS. A baix a la dreta VSM. . . . . . . . . . . . . . . . . . 85 11.12Algorisme b`asic de mapejat d’ombres amb diferents resolucions. Co- men¸cant per a dalt a l’esquerra i continuant cap a la dreta i saltant de l´ınia es troben consecutivament les resolucions: 128x128, 256x256, 512x512, 1024x1024, 2048x2048, 4096x4096 i 8192x8192 . . . . . . . . . . 86 11.13Algorisme VSM. Comen¸cant per a dalt es troben consecutivament les re- solucions: 128x128, 256x256, 512x512, 1024x1024, 2048x2048, 4096x4096 i 8192x8192 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 11.14Resultats de l’algorisme de PCF. Comen¸cant per l’esquerra les colum- nes s´on les resolucions del mapa d’ombres: 128x128, 256x256, 512x512 i 1024x1024. I comen¸cant per a dalt les files corresponen a 4, 16, 64, 128 i 256 mostres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 11.15Resultats de l’algorisme PCF. Comenc¸ant per l’esquerra les columnes s´on les resolucions del mapa d’ombres: 128x128, 256x256, 512x512 i 1024x1024. I comen¸cant per a dalt les files corresponen a 4, 16, 64, 128 i 256 mostres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 11.16Resultats de l’algorisme PCSS. Comen¸cant per l’esquerra les columnes s´on les mides de la llum: 1, 30 i 60. I comen¸cant per a dalt les files corresponen a 4, 16, 64, 128 i 256 mostres. . . . . . . . . . . . . . . . . . . 90 11.17Diagrama intu¨ıtiu de l’execuci´o dels algorismes basats en mapes d’ombres. 91 11.18Gr`afica de rendiment de l’algorisme PCF. Relaci´o entre les mides de pan- talla i el nombre de mostres preses per cada fragment. . . . . . . . . . . . 92 11.19Escena utilitzant un sol mapa d’ombres de 4096x4096. . . . . . . . . . . . 94 11.20Resultats de l’algorisme Cascaded Shadow Maps. Comen¸cant per l’es- querra, les columnes s´on les resolucions del mapa d’ombres: 512x512, 1024x1024, 2048x2048 i 4096x4096. I comen¸cant per dalt les files corres- ponen al nombre de particions del frustum de visi´o: 1, 2, 3 i 4. . . . . . . 95 11.21Gr`afica de rendiment de l’algorisme Cascaded Shadow Maps. Relaci´o entre el nombre de particions del frustum de visi´o i el nombre de v`ertexs de l’escena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 12.1 Diagrama de Gantt amb la planificaci´o del projecte. Est`a partit en dues parts per millor llegibilitat. . . . . . . . . . . . . . . . . . . . . . . . . . . 99 A.1 Pipeline d’OpenGL 2.1. No es mostra el geometry shader, que hauria de ser una etapa programable situada entre les fixes de primitive assembly i clipping. Imatge extreta de [20]. . . . . . . . . . . . . . . . . . . . . . . . 106 B.1 Interf´ıcie del visualitzador d’ombres. . . . . . . . . . . . . . . . . . . . . . 107 List of Figures viii B.2 Pestanya de gesti´o dels models de l’escena.. . . . . . . . . . . . . . . . . . 109 B.3 Pestanya de gesti´o de l’oclusi´o ambient a espai de pantalla. . . . . . . . . 110 B.4 Pestanya de gesti´o dels algorismes de mapejat d’ombres. . . . . . . . . . . 111 B.5 Pestanya de gesti´o de l’algorisme de Cascaded Shadow Maps. . . . . . . . 113 ´ Index de taules 11.1 Comparativa del rendiment de l’oclusi´o ambient a espai de pantalla. . . . 83 11.2 Comparativa del rendiment de PCF. . . . . . . . . . . . . . . . . . . . . . 92 11.3 Comparativa del rendiment de Cascaded Shadow Maps. . . . . . . . . . . 96 12.1 Costos de recursos humans. . . . . . . . . . . . . . . . . . . . . . . . . . . 100 ix
Description: