Hardware Accelerated Computer Graphics Algorithms
Total Page:16
File Type:pdf, Size:1020Kb
Hardware Accelerated Computer Graphics Algorithms Daniel Thomas Rhodes May 2008 A thesis submitted in partial fulfilment of the requirements of Nottingham Trent University for the degree of Doctor of Philosophy School of Science and Technology Nottingham Trent University Clifton Lane Nottingham NG11 8NS TableTable ofof ContentsContents Chapter 1: Introduction...............................................................1 Chapter 2: Overview of Graphics Hardware............................5 2.1 The Fixed Function Pipeline...................................................................................6 2.2 The Programmable Pipeline....................................................................................8 2.2.1 Shader Model 3............................................................................................. 11 2.2.2 High Level Shader Languages...................................................................... 11 2.2.2.1 Alternatives............................................................................................14 2.2.2.2 Advantages and Disadvantages............................................................. 15 2.3 Life at the Bleeding Edge..................................................................................... 17 2.3.1 Precision........................................................................................................20 Chapter 3: Depth of Field..........................................................24 3.1 What is Depth of Field?........................................................................................ 27 3.2 Existing Solutions................................................................................................. 31 3.2.1 Blurring by Multiple Viewpoints.................................................................. 31 3.2.1.1 Blurring by Multisampling....................................................................32 3.2.1.2 Ray Tracing........................................................................................... 33 3.2.2 Blurring Dependant on Depth....................................................................... 34 3.3 New Depth of Field Implementation.................................................................... 37 3.4 Results...................................................................................................................50 3.4.1 Software........................................................................................................ 50 3.4.2 Hardware....................................................................................................... 52 3.4.2.1 A-Buffers............................................................................................... 52 3.4.2.2 B-Buffers............................................................................................... 53 3.5 Conclusions...........................................................................................................55 Chapter 4: Texture Mapping and Aliasing..............................58 4.1 The Aliasing Problem........................................................................................... 63 4.1.1 Types of Aliasing...........................................................................................65 4.1.1.1 Edge Aliasing.........................................................................................66 4.1.1.1.1 Supersampling............................................................................... 66 4.1.1.1.2 Multisampling................................................................................67 4.1.1.2 Texture Aliasing.....................................................................................69 4.2 Existing Solutions................................................................................................. 73 4.2.1 MIP Mapping................................................................................................ 73 4.2.2 Bilinear Filtering........................................................................................... 77 4.2.3 Trilinear Filtering.......................................................................................... 79 4.2.4 “Brilinear” and “Trylinear” Filtering............................................................ 81 4.2.5 RIP Mapping................................................................................................. 85 4.2.6 Anisotropic Filtering..................................................................................... 86 4.2.7 Elliptical Weighted Average..........................................................................90 4.2.8 Texram...........................................................................................................93 4.2.9 Feline.............................................................................................................94 4.2.10 Clamping..................................................................................................... 95 4.2.11 Texture Potential MIP Mapping.................................................................. 98 4.2.12 Conclusions................................................................................................. 99 4.3 Fourier Textures.................................................................................................... 99 4.3.1 Fourier Textures Technique.........................................................................101 4.3.2 Results......................................................................................................... 109 4.3.3 Conclusions................................................................................................. 114 4.4 Fourier Texture Filtering..................................................................................... 114 4.4.1 Fourier Texture Filtering Technique............................................................115 4.4.2 Texture Selection......................................................................................... 119 4.4.3 Results......................................................................................................... 129 4.4.3.1 Software...............................................................................................135 4.4.3.2 Hardware............................................................................................. 135 4.4.3.2.1 Theoretical Performance..............................................................139 4.4.3.2.2 Memory utilisation.......................................................................139 4.4.3.2.3 Samples and bandwidth............................................................... 143 4.4.3.2.4 Observed Performance.................................................................150 4.4.3.2.5 Visual Results.............................................................................. 157 4.5 Conclusions.........................................................................................................183 Chapter 5: Bump Mapping.....................................................188 5.1 Existing Solutions............................................................................................... 189 5.1.1 Emboss Bump Mapping..............................................................................189 5.1.2 Normal Mapping......................................................................................... 192 5.1.3 Environment Mapped Bump Mapping........................................................196 5.1.4 Parallax Mapping........................................................................................ 197 5.1.5 Displacement Mapping............................................................................... 200 5.2 Anti-Aliased Bump Mapping..............................................................................202 5.3 Super Bump Mapping.........................................................................................207 5.3.1 Efficient anti-aliased bump mapping.......................................................... 207 5.3.2 Super Bump Mapping Technique................................................................210 5.4 Results.................................................................................................................213 5.4.1 Visual Results..............................................................................................213 5.4.2 Performance................................................................................................ 220 5.5 Conclusions.........................................................................................................222 Chapter 6: Conclusions and Future Work.............................223 References................................................................................. 230 Appendices................................................................................ 247 Appendix A:Software Frequency Tests.....................................................................248 Appendix B:Hardware Frequency Tests................................................................... 265 Appendix C:Typical Video Game Scenes.................................................................286 Appendix D:Histograms........................................................................................... 291 Appendix E:Textures in Fourier Space..................................................................... 301 Appendix F:Super Bump Mapping Images.............................................................