The Comparison of Three 3D Graphics Raster Processors and the Design of Another
Total Page:16
File Type:pdf, Size:1020Kb
Rochester Institute of Technology RIT Scholar Works Theses 7-1-1999 The Comparison of three 3D graphics raster processors and the design of another Paul Brown Follow this and additional works at: https://scholarworks.rit.edu/theses Recommended Citation Brown, Paul, "The Comparison of three 3D graphics raster processors and the design of another" (1999). Thesis. Rochester Institute of Technology. Accessed from This Thesis is brought to you for free and open access by RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact [email protected]. The Comparison of Three 3D Graphics Raster Processors and the Design of Another by Paul M. Brown A Thesis Submitted III Partial Fulfillment of the Requirements for the Degree of Master of Science III Computer Engineering Approved by: Principle Advisor Roy S. Czernikowski, Professor, Computer Engineering Committee Member _ Hans-Peter Bischof, Assistant Professor, Computer Science Committee Member _ Robert S. Horton, IBM Senior Design Engineer Department of Computer Engineering Kate Gleason College of Engineering Rochester Institute of Technology Rochester, New York July 1999 Release Permission Form Rochester Institute of Technology The Heresy, Talisman, and Tayra 3D Architectures: A Comparison I, Paul M. Brown hereby grant permission to any individual or organization to reproduce this thesis in whole or in part for non-commercial and non-profit purposes only. Paul M. Brown Date Abstract There are a number of 3D graphics accelerator architectures on the market today. One of the largest issues concerning the design of a 3D accelerator is that of affordability for the home user while still delivering good performance. Three such architectures were analyzed: the Heresy architecture defined by Chiueh [2], the Talisman architecture defined by Torborg [7], and the Tayra architecture's specification by White [9]. Portions of these three architectures were used to create a new architecture taking advantage of as many of their features as possible. The advantage of chunking will be analyzed, along with the advantages of a single cycle z-buffering algorithm. It was found that Fast Phong Shading is not suitable for implementation in this pipeline, and that the clipping algorithm should be eliminated in favor of a scissoring algorithm. Contents List of Figures v Glossary . vii 1 Introduction 1 1.1 Heresy Architecture . .. 1 1.2 Talisman Architecture .... .. 2 1.2.1 Composited Image Layers .. 2 1.2.2 Image Compression . 3 1.2.3 Chunking 3 1.2.4 Multi-pass Rendering 3 1.3 Tayra Architecture 3 1.4 Hardware Specific Stuff 4 1.4.1 Heresy Architecture 4 1.4.2 Talisman Architecture . .4 1.4.3 Tayra Architecture .. ... 4 1.5 Display Traversal ... 5 1.5.1 Heresy Architecture 6 1.5.2 Talisman Architecture 6 1.5.3 Tayra Architecture . 6 1.5.4 Comparison .... .... 7 1.6 Modeling Transformation 7 1.6.1 Heresy Architecture 7 1.6.2 Talisman Architecture 7 1.6.3 Tayra Architecture . 7 1.6.4 Comparison 7 1.7 Trivial Accept/Reject Classification ... 7 1.7.1 Heresy Architecture 8 1.7.2 Talisman Architecture 8 1.7.3 Tayra Architecture . 8 1.7.4 Comparison 8 1.8 Lighting 8 1.8.1 Phong Lighting . 8 1.8.2 Cook and Torrance Lighting Model 11 1.8.3 BAGS Lighting Model 12 1.8.4 Heresy Architecture 13 1.8.5 Talisman Architecture 13 1.8.6 Tayra Architecture 13 1.8.7 Comparison 14 1.9 Viewing Transformation 14 1.9.1 Heresy Architecture 14 1.9.2 Talisman Architecture 14 1.9.3 Tayra Architecture 14 1.9.4 Comparison . .... 14 1.10 Clipping 14 1.10.1 Sutherland Hodgman Polygon Clipping 15 1.10.2 Heresy Architecture 16 1.10.3 Talisman Architecture 16 1.10.4 Tayra Architecture 16 1.10.5 Comparison 16 1.11 Division by w and Mapping to 3D Viewport . ... 16 1.11.1 Heresy Architecture 16 1.11.2 Talisman Architecture 17 1.11.3 Tayra Architecture . 17 1.11.4 Comparison 17 1.12 Rasterization 17 1.12.1 Heresy Architecture . 17 1.12.2 Talisman Architecture ... 17 1.12.3 Tayra Architecture . 18 1.13 Scan Conversion .... 20 1.13.1 Heresy Architecture 20 1.13.2 Talisman Architecture .... .. 20 1.13.3 Tayra Architecture . 20 1.13.4 Comparison 21 1.14 Visible-Surface Determination 21 1.14.1 Z-buffer 21 1.14.2 Heresy Architecture 22 1.14.3 Talisman Architecture 22 1.14.4 Tayra Architecture . 23 1.14.5 Comparison 23 1.15 Shading 23 1.15.1 Gouraud Shading 23 1.15.2 Phong Shading 24 1.15.3 Fast Phong Shading 24 1.15.4 Heresy Architecture 26 1.15.5 Talisman Architecture 26 1.15.6 Tayra Architecture 26 1.15.7 Comparison 26 1.16 Texture Mapping 26 1.16.1 Mapping 26 1.16.2 Texture Filtering 28 n 1.16.3 Mip-Mapping 28 1.16.4 Heresy Architecture 28 1.16.5 Talisman Architecture 29 1.16.6 Tayra Architecture 29 1.16.7 Comparison 30 1.17 Antialiasing 30 1.17.1 Averaging 30 1.17.2 A-buffer 30 1.17.3 Modified A-buffer 31 1.17.4 Heresy Architecture 31 1.17.5 Talisman Architecture 31 1.17.6 Tayra Architecture 31 1.17.7 Comparison 31 1.18 Alpha Blending . 32 1.18.1 Heresy Architecture 32 1.18.2 Talisman Architecture . 32 1.18.3 Tayra Architecture 32 1.18.4 Comparison 32 1.19 Additional Information 33 1.19.1 Talisman Architecture 33 1.20 Conclusions 33 2 Pipeline Overview 35 3 Geometric Transforms 36 3.1 Modeling Transformation .... 36 3.1.1 Matrix Transformations . 37 3.1.2 Complexity 40 3.2 Trivial Accept/Reject . 40 3.2.1 Complexity 40 3.3 Lighting 40 3.3.1 Lighting Equations 41 3.3.2 Applying the Lighting Equations 42 3.3.3 Complexity 42 3.4 Viewing Transformation 42 3.4.1 Performing the Viewing Transformation 43 3.4.2 Applying the Viewing Transformation Matrix 44 3.4.3 Complexity 44 3.5 Clipping 45 3.5.1 Transforming the View Volume 46 3.5.2 Performing the Clipping Operation 47 3.5.3 Complexity 49 3.6 3D to 2D Transformations and Division by w 50 3.6.1 Division by u; 50 3.6.2 Mapping to Viewport 50 111 3.6.3 Complexity 51 4 Rasterization 52 4.1 Active Primitive Determination 52 4.1.1 Chunking 53 4.1.2 Complexity 53 4.2 Depth Check 54 4.2.1 Creating the Depth Chunk 54 4.2.2 Complexity ... .. 55 4.3 Texture Level Determination 55 4.3.1 Finding the Level and Fraction .... ... 56 4.3.2 Complexity . 57 4.4 Gouraud Shading . 57 4.4.1 Gouraud Shading a Chunk 57 4.4.2 Complexity 58 4.5 Fast Phong Shading 58 4.5.1 Shading with Fast Phong 59 4.5.2 Complexity 59 4.6 Anti-Aliasing 60 4.6.1 Coverage Mask 60 4.6.2 Complexity ... 61 4.7 Texture Mapping . .... 61 4.7.1 Mapping a Texture 62 4.7.2 Complexity 62 4.8 Alpha Blending 63 4.8.1 Adding Transparent Values 63 4.8.2 Complexity 64 4.9 Frame Buffer 64 5 Comparison 65 6 Future Work 68 IV List of Figures 1.1 Standard Graphics Pipeline 1 1.2 Heresy Architecture Overview 4 1.3 Talisman Architecture Overview ... 5 1.4 Tayra Architecture Overview 5 1.5 Specular Reflection . .... 10 1.6 Sutherland Hodgman Clipping Rules . .. 15 1.7 Heresy Lazy Shading Algorithm Data Flow ... 18 1.8 Talisman Polygon Object Processor . 19 1.9 Talisman Image Layer Compositor . 19 1.10 Tayra Scan Conversion Module . 20 1.11 Heresy Speculative z-buffer Cell 22 2.1 Pipeline Overview Diagram 35 3.1 Geometric Transforms Pipeline Stages 36 3.2 Modeling Transformation Stage 37 3.3 Lighting Stage 41 3.4 Viewing Transformation Pipeline Stage 42 3.5 View Reference Coordinate System Reference Points 43 3.6 Clipping Pipeline Stage .... 45 3.7 View Volume .... 45 3.8 View Volume After PRP Translation 46 3.9 View Volume after X-Y Shear .. 47 3.10 View Volume after Scale . 48 3.11 Homogeneous View Volume 48 3.12 3D to 2D Transformation Pipeline Stage 50 3.13 View Volume after Divide by w 51 4.1 Active Primitive Determination Pipeline Stage 52 4.2 Chunking of Primitives 53 4.3 Depth Check Pipeline Stage 54 4.4 Texture Level Determination Pipeline Stage 55 4.5 MIP-Mapping Level Sizes 56 4.6 Texture and Primitive Triangles 56 4.7 Gouraud Shading Pipeline Stage 58 4.8 Fast Phong Shading Pipeline Stage 59 4.9 Anti-Aliasing Pipeline Stage 60 4.10 Coverage Mask 61 4.11 Texture Mapping Pipeline Stage 62 4.12 Alpha Blending Pipeline Stage 63 5.1 Example 1 65 5.2 Example 2 66 5.3 Example 3 67 5.4 Example 4 ... 67 VI Glossary Affine Transformation pages 2, 6 A transformation that maintains the angles between lines. Mip-Map pages 3, 18, 28, 61 Multum in parvo. A method of prefiltering textures, so that textures of the appropriate size can be selected for a given primitive. Texel page 28 A texture element. A color value that is stored in a texture map specifically used in adding detail to the surface of primitives. TREC page 29 Texture and Rendering Engine Compression. A Microsoft developed tex ture compression format, specifically for use in high speed rendering appli cations.