throbber
ATI Exhibit 2018
`ARM LTD, et al. v. ATI Technologies ULC
`IPR2018-01148
`Page 1 of 554
`
`

`

`Wesley
`
`ATI Exhibit 2018, Page 2 of 554
`
`

`

`O enGL.
`Programming Guide
`
`The Official Guide to Learning
`OpenGL, Release 1
`
`OpenGL Architecture Review Board
`Jackie Neider Tom Davis Mason Woo
`
`Addison-Wesley Publishing Company
`Reading, Massachusetts Menlo Park, California
`New York Don Mills, Ontario Wokingham, England
`Amsterdam Bonn Sydney Singapore Tokyo Madrid
`San Juan Paris Seoul Milan Mexico City Taipei
`
`ATI Exhibit 2018, Page 3 of 554
`
`

`

`Silicon Graphics, the Silicon Graphics logo, and IRIS are registered
`trademarks and OpenGL and IRIS Graphics Library are trademarks of
`Silicon Graphics, Inc. X Window System is a trademark of Massachusetts
`Institute of Technology. Display PostScript is a.registered trademark of
`Adobe Systems Incorporated.
`
`The authors and publishers have taken care in preparation of this book,
`but make no expressed or implied warranty of any kind and assume no
`responsibility for errors or omissions. No liability is assumed for incidental
`or consequential damages in connection with or arising out of the use of
`the information or programs contained herein.
`
`Library of Congress Cataloging-in-Publication Data
`
`Neider, Jackie.
`OpenGL programming guide : the official guide to learning OpenGL,
`release I / OpenGL Architecture Review Board ; Jackie Neider, Tom
`Davis, Mason Woo.
`p. cm.
`Includes index.
`ISBN 0-20.1-63274-8
`1. Computer graphics. 2. OpenGL. I. Davis, Tom. II. Woo,
`IV. Title.
`Mason. III. OpenGL Architecture Review Board.
`T385.N435 1993
`006.6’765~dc20
`
`93-3162
`CIP
`
`Copyright © 1993 by Silicon Graphics, Inc.
`
`All rights reserved. No part of this publication may be reproduced, stored
`in a retrieval system, or transmitted, in any form or by any means,
`electronic, mechanical, photocopying, recording or otherwise, without the
`prior written permission of the publisher. Printed in the United States of
`America. Published simultaneously in Canada.
`
`Authors: Jackie Neider, Tom Davis, and Mason Woo
`Sponsoring Editor: David Rogelberg
`Project Editor: Joanne Clapp Fullagar
`Cover Image: Thad Beier
`Cover Design: Jean Seal
`Text Design: Electric Ink, Ltd., and Kay Maitz
`
`Set in lO-point Stone Serif
`
`7 8 9 10 11 12 13 14 15-MA-0099989796
`Seventh printing, March 1996
`
`ATI Exhibit 2018, Page 4 of 554
`
`

`

`For my family--Felicity, ~v~ax, Sarah, and Scout.
`
`--JLN
`
`For my family--Ellyn, Ricky, and Lucy.
`
`~--TRD
`
`To Tom Doeppner and Andy van Dam, who started me along this path.
`
`--MW
`
`ATI Exhibit 2018, Page 5 of 554
`
`

`

`About This Guide
`
`The OpenGL graphics system is a software interface to graphics hardware.
`(The GL stands for Graphics Library.) It allows you to create interactive
`programs that produce color images of moving three-dimensional objects.
`With OpenGL, you can control computer-graphics technology to produce
`realistic pictures or ones that depart from reality in imaginative ways. This
`guide explains how to program with the OpenGL graphics system to
`deliver the visual effect you want.
`
`What This Guide Contains
`
`This guide has the ideal number of chapters: 13. The first six chapters
`present basic information that you need to understand to be able to draw a
`properly colored and lit three-dimensional object on the screen:
`
`Chapter 1, "Introduction to OpenGL," provides a glimpse into the
`kinds of things OpenGL can do. It also presents a simple OpenGL
`program and explains essential programming details you need to know
`for subsequent chapters.
`
`Chapter 2, "Drawing Geometric Objects," explains how to create a
`three-dimensional geometric description of an object that is eventually
`drawn on the screen.
`
`Chapter 3, "Viewing," describes how such three-dimensional models
`are transformed before being drawn onto a two-dimensional screen.
`You can control these transformations to show a particular view of a
`model.
`
`Chapter 4, "Display Lists," .discusses how to store a series of OpenGL
`commands for execution at a later time. You’ll want to use this feature
`to increase the performance of your OpenGL program.
`
`v
`
`ATI Exhibit 2018, Page 6 of 554
`
`

`

`Chapter 5, "Color," describes how to specify the color and shading
`method used to draw an object.
`
`Chapter 6, "Lighting," explains how to control the lighting conditions
`surrounding an object and how that object responds to light (that is,
`how it reflects or absorbs light). Lighting is an important topic, since
`objects usually don’t look three-dimensional until they’re lit.
`
`The remaining chapters explain how to add sophisticated features to your
`three-dimensional scene. You might choose not to take advantage of many
`of these features until you’re more comfortable with OpenGL. Particularly
`advanced topics are noted in the text where they occur.
`
`Chapter 7, "Blending, Antialiasing, and Fog," describes techniques
`essential to creating a realistic scene--alpha blending (which allows
`you to create transparent objects), antialiasing, and atmospheric effects
`(such as fog or smog).
`
`Chapter 8, "Drawing Pixels, Bitmaps, Fonts, and Images," discusses
`how to work with sets of two-dimensional data as bitmaps or images.
`One typical use for bitmaps is to describe characters in fonts.
`
`Chapter 9, "Texture Mapping," explains how to map one- and two-
`dimensional images called textures onto three-dimensional objects.
`Many marvelous effects can be achieved through texture mapping.
`Chapter 10, "The Framebuffer," describes all the possible buffers that
`can exist in an OpenGL implementation and how you can control
`them. You can use the buffers for such effects as hidden-surface
`elimination, stenciling, masking, motion blur, and depth-of-field
`focusing.
`
`Chapter 11, "Evaluators and NURBS," gives an introduction to
`advanced techniques for efficiently generating curves or surfaces.
`
`Chapter 12, "Selection and Feedback," explains how you can use
`OpenGL’s selection mechanism to select an object on the screen. It
`also explains the feedback mechanism, which allows you to collect the
`drawing information OpenGL produces rather than having it be used
`to draw on the screen.
`
`Chapter 13, "Now That You Know," describes how to use OpenGL in
`several clever and unexpected ways to produce interesting results.
`These techniques are drawn from years of experience with the
`technological precursor to OpenGL, the Silicon Graphics IRIS Graphics
`Library.
`
`About This Guide
`
`ATI Exhibit 2018, Page 7 of 554
`
`

`

`In addition, there are several appendices that you will likely find useful:
`¯ Appendix A, "Order of Operations," gives a technical overview of the
`operations OpenGL performs, briefly describing them in-the order in
`which they occur as an application executes.
`¯ Appendix B, "OpenGL State Variables," lists the state variables that
`OpenGL maintains and describes how to obtain their values.
`¯ Appendix C, "The OpenGL Utility Library," briefly describes the
`routines available in the OpenGL Utility Library.
`¯ Appendix D, "The OpenGL Extension to the X Window System,"
`briefly describes the routines available in the OpenGL extension to the
`X Window System.
`Appendix E, "The OpenGL Programming Guide Auxiliary Library,"
`discusses a small C code library that was written for this book to make
`code examples shorter and more comprehensible.
`
`Appendix F, "Calculating Normal Vectors," tells you how to calculate
`normal vectors for different types of geometric objects.
`Appendix G, "Homogeneous Coordinates and Transformation
`Matrices," explains some of the mathematics behind matrix
`transformations.
`
`Appendix H, "Programming Tips," lists some programming tips based
`on the intentions of the designers of OpenGL that you might find
`useful.
`
`Appendix I, "OpenGL Invariance," describes the pixel-exact
`invariance rules that OpenGL implementations follow.
`
`Finally, an extensive Glossary defines the key terms used in this guide.
`
`How to Obtain the Sample Code
`
`This guide contains many sample programs to illustrate the use of
`particular OpenGL programming techniques. These programs make use of
`a small auxiliary library that was written for this guide. The section
`"OpenGL-related Libraries" on page 10 gives more information about this
`auxiliary library. You can obtain the source code for both the s~mple
`programs and the auxiliary library for free via ftp (file-transfer protocol) if
`you have access to the Internet.
`
`How to Obtain the Sample Code
`
`vii
`
`ATI Exhibit 2018, Page 8 of 554
`
`

`

`First, use ftp to go to the host sgigate.sgi.com, and use anonymous as your
`user name and your_name@machine as the password. Then type the
`following:
`
`cd pub/opengl
`binary
`get opengl.tar. Z
`bye
`
`The file you receive is a compressed tar archive. To restore the files, type:
`
`uncompress opengl.tar
`tar xf opengl.tar
`
`The sample programs and auxiliary library are created as subdirectories
`from wherever you are in the file directory structure.
`
`Many implementations of OpenGL might also include the code samples
`and auxiliary library as part of the system. This source code is probably the
`best source for your implementation, because it might have been
`optimized for your system. Read your machine-specific OpenGL
`documentation to see where the code samples can be found.
`
`What You Should Know Before Reading This Guide
`
`This guide assumes only that you know how to program in the C language
`and that you have some background in mathematics (geometry,
`trigonometry, linear algebra, calculus, and differential geometry). Even if
`you have little or no experience with computer-graphics technology, you
`should be able to follow most of the discussions in this book. Of course,
`computer graphics is a huge subject, so you may want to enrich your
`learning experience with supplemental reading:
`
`Computer Graphics: Principles and Practice by James D. Foley, Andries
`van Dam, Steven K. Feiner, and John F. Hughes (Reading, Mass.:
`Addison-Wesley Publishing Co0--This book is an encyclopedic
`treatment of the subject of computer graphics. It includes a wealth of
`information but is probably best read after you have some experience
`with the subject.
`
`3D Computer Graphics: A User’s Guide for Artists and Designers by Andrew
`S. Glassner (New York: Design Press)--This book is a nontechnical,
`gentle introduction to computer graphics. It focuses on the visual
`
`viii
`
`About This Guide
`
`ATI Exhibit 2018, Page 9 of 554
`
`

`

`effects that can be achieved rather than on the techniques needed to
`achieve them.
`
`Once you begin programming with OpenGL, you might want to obtain
`the OpenGL Reference Manual by the OpenGL Architecture Review Board
`(Reading, Mass.: Addison-Wesley Publishing Co., 1993), which is designed
`as a companion volume to this guide. The Reference Manual provides a
`technical view of how OpenGL operates on data that describes a geometric
`object or an image to produce an image on the screen. It also contains full
`descriptions of each set of related OpenGL commands--the parameters
`used by the commands, the default values for those parameters, and what
`the commands accomplish.
`
`"OpenGL" is really a hardware-independent specification of a
`programming interface. You use a particular implementation of it on a
`particular kind of hardware. This guide explains how to program with any
`OpenGL implementation. However, since implementations may vary
`slightly--in performance and in providing additional, optional features,
`for example--you might want to investigate whether supplementary
`documentation is available for the particular implementation you’re using.
`In addition, you might have OpenGL-related utilities, toolkits,
`programming and debugging support, widgets, sample programs, and
`demos available to you with your system.
`
`Style Conventions
`
`These style conventions are used in this guide:
`¯ Bold--Command and routine names, and matrices

`Italics--Variables, arguments, parameter names, spatial dimensions,
`and matrix components
`¯ Regular--Enumerated types and defined constants
`Code examples are set off from the text in a monospace font, and
`command summaries are shaded with gray boxes.
`
`Topics that are particularly complicated--and that you can skip if you’re
`new to OpenGL or computer graphics--are marked with the Advanced
`icon. This icon can apply to a single paragraph or to an entire section or
`chapter.
`
`Exercises that are left for the reader are marked with the Try This icon.
`
`Style Conventions
`
`ix
`
`ATI Exhibit 2018, Page 10 of 554
`
`

`

`Acknowledgments
`
`No book comes into being without the help of many people. Probably the
`largest debt the authors owe is to the creators of OpenGL itself. The
`OpenGL team at Silicon Graphics has been led by Kurt Akeley, Bill Glazier,
`Kipp Hickman, Phil Karlton, Mark Segal, Kevin P. Smith, and Wei Yen. The
`members of the OpenGL Architecture Review Board naturally need to be
`¯ counted among the designers of OpenGL: Dick Coulter and John Dennis
`of Digital Equipment Corporation; Jim Bushnell and Linas Vepstas of
`International Business Machines, Corp.; Murali Sundaresan and Rick
`Hodgson of Intel; and On Lee and Chuck Whitmore of Microsoft. Other
`early contributors to the design of OpenGL include Raymond Drewry of
`Gain Technology, Inc., Fred Fisher of Digital Equipment Corporation, and
`Randi Rost of Kubota Pacific Computer, Inc. Many other Silicon Graphics
`employees helped refine the definition and functionality of OpenGL,
`including Momi Akeley, Allen Akin, Chris Frazier, Paul Ho, Simon Hui,
`Lesley Kalmin, Pierre Tardiff, and Jim Winget.
`
`Many brave souls volunteered to review this book: Kurt Akeley, Gavin Bell,
`Sam Chen, Andrew Cherenson, Dan Fink, Beth Fryer, Gretchen Helms,
`David Marsland, Jeanne Rich, Mark Segal, Kevin P. Smith, and Josie
`Wernecke from Silicon Graphics; David Niguidula, Coalition of Essential
`Schools, Brown University; John Dennis and Andy Vesper, Digital
`Equipment Corporation; Chandrasekhar Narayanaswami and Linas
`Vepstas, International Business Machines, Corp.; Randi Rost, Kubota
`Pacific; On Lee, Microsoft Corp.; Dan Sears; Henry McGilton, Trilithon
`Software; and Paula Womak.
`
`Assembling the set of colorplates was no mean feat. The sequence of plates
`based on the cover image (Plates 1-9) was created by Thad Beier of Pacific
`Data Images, Seth Katz of Xaos Tools, Inc., and Mason Woo of Silicon
`Graphics. Plates 10-23 are snapshots of programs created by Mason. Gavin
`Bell, Kevin Goldsmith, Linda Roy, and Mark Daly (all of Silicon Graphics)
`
`xi
`
`ATI Exhibit 2018, Page 11 of 554
`
`

`

`created the fly-through program used for Plate 24. The model for Plate 25
`was created by Barry Brouillette of Silicon Graphics; Doug Voorhies, also of
`Silicon Graphics, performed some image processing for the final image.
`Plate 26 was created by John Rohlf and Michael Jones, both of Silicon
`Graphics. Plate 27 was created by Carl Korobkin of Silicon Graphics. Plate
`28 is a snapshot from a program written by Gavin Bell with contributions
`from the Inventor team at Silicon Graphics--Alain Dumesny, Dave Immel,
`David Mott, Howard Look, Paul Isaacs, Paul Strauss, and Rikk Carey. Plates
`29 and 30 are snapshots from a visual simulation program created by the
`Silicon Graphics IRIS Performer team--Craig Phillips, John Roh~f, Sharon
`Fischler, Jim Helman, and Michael Jones--from a database produced for
`Silicon Graphics by Paradigm Simulation, Inc. Plate 31 is a snapshot from
`skyfly, the precursor to Performer, which was created by John Rohlf,
`Sharon Fischler, and Ben Garlick, all of Silicon Graphics.
`
`Several other people played special roles in creating this book. If we were
`to list other names as authors on the front of this book, KurtAkeley and
`Mark Segal would be there, as honorary yeoman. They helped define the
`structure and goals of the book, provided key sections of material for it,
`reviewed it when everybody else was too tired of it to do so, and supplied
`that all-important humor and support throughout the process. Kay Maitz
`provided invaluable production and design assistance. Kathy Gochenour
`very generously created many of the illustrations for this book. Tanya
`Kucak copyedited the manuscript, in her usual thorough and professional
`style.
`
`And now, each of the authors would like to take the 15 minutes that have
`been allotted to them by Andy Warhol to say thank you.
`
`I’d like to thank my managers at Silicon Graphics--Dave Larson and
`Way Ting--and the members of my group--Patricia Creek, Arthur Evans,
`Beth Fryer, Jed Hartman, Ken Jones, Robert Reimann, Eve Stratton (aka
`Margaret-Anne Halse), John Stearns, and Josie Wernecke--for their support
`during this lengthy process. Last but surely not least, I want to thank those
`whose contributions toward this project are too deep and mysterious to
`elucidate: Yvonne Leach, Kathleen Lancaster, Caroline Rose, Cindy
`Kleinfeld, and my parents, Florence and Ferdinand Neider.
`
`~JLN
`
`In addition to my parents, Edward and Irene Davis, I’d like to thank the
`people who taught me most of what I know about computers and
`computer graphics--Doug Engelbart and Jim Clark.
`
`--TRD
`
`Acknowledgments
`
`ATI Exhibit 2018, Page 12 of 554
`
`

`

`I’d like to thank the many past and current members of Silicon Graphics
`whose accommodation and enlightenment were essential to my
`contribution to this book: Gerald Anderson, Wendy Chin, Bert Fornaciari,
`Bill Glazier, Jill Huchital, Howard Look, Bill Mannel, David Marsland, Dave
`Orton, Linda Roy, Keith Seto, and Dave Shreiner. Very special thanks to
`Karrin Nicol and Leilani Gayles of SGI for their guidance throughout my
`career. I also bestow much gratitude to my teammates on the Stanford B
`ice hockey team for periods of glorious distraction throughout the writing
`of this book. Finally, I’d like to thank my family, especially my mother, Bo,
`and my late father, Henry.
`
`Xlll
`
`ATI Exhibit 2018, Page 13 of 554
`
`

`

`Contents
`
`About This Guide ...................................................................................
`
`v
`
`v
`What This Guide Contains ...............................................................
`How to Obtain the Sample Code .....................................................vii
`What You Should Know Before Reading This Guide .......................viii
`Style Conventions ............................................................................ix
`
`Acknowledgments ..................................................................................
`
`1. Introduction to OpenGL ...................................................................
`
`xi
`
`1
`
`What Is OpenGL? .............................................................................2
`A Very Simple OpenGL Program ......................................................5
`OpenGL Command Syntax ..............................................................7
`OpenGL as a State Machine .............................................................9
`OpenGL-related Libraries .................................................................10
`, ....... 11
`The OpenGL Programming Guide Auxiliary Library ........
`Animation ........................................................................................14
`
`2. Drawing Geometric Objects ............................................................19
`
`A Drawing Survival Kit .....................................................................21
`Clearing the Window .................................................................21
`Specifying a Color ......................................................................24
`Forcing Completion of Drawing .................................................25
`Hidden-Surface Removal Survival Kit ........................................27
`
`ATI Exhibit 2018, Page 14 of 554
`
`

`

`Describing Points, Lines, and Polygons ...........................................28
`What Are Points, Lines, and Polygons? .....................................29
`Specifying Vertices .....................................................................33
`OpenGL Geometric Drawing Primitives ...................................34
`Displaying Points, Lines, and Polygons ...........................................39
`Point Details ...............................................................................39
`Line Details ................................................................................40
`Polygon Details ..........................................................................45
`Normal Vectors ................................................................................52
`Some Hints for Building Polygonal Models of Surfaces .................. 54
`An Example: Building an Icosahedron ......................................56
`
`3. Viewing ............................................................................................
`
`63
`
`Overview: The Camera Analogy ......................................................66
`A Simple Example: Drawing a Cube ..........................................69
`General-Purpose Transformation Commands .......................... 74
`Viewing and Modeling Transformations .........................................76
`Thinking about Transformations ..............................................77
`Modeling Transformations ........................................................80
`Viewing Transformations ..........................................................84
`Projection Transformations ............................................................90
`Perspective Projection ................................................................91
`Orthographic Projection ............................................................94
`Viewing Volume Clipping .........................................................96
`Viewport Transformation ................................................................96
`Defining the Viewport ...............................................................96
`The Transformed z Coordinate ..................................................98
`Troubleshooting Transformations ...................................................99
`Manipulating the Matrix Stacks .......................................................102
`The Modelview Matrix Stack .....................................................105
`The Projection Matrix Stack ......................................................105
`Additional Clipping Planes ....................., ........................................106
`Examples of Composing Several Transformations ..........................109
`Building a Solar System .............................................................109
`Building an Articulated Robot Arm ...........................................113
`
`ATI Exhibit 2018, Page 15 of 554
`
`

`

`117
`
`4. Display Lists ............... , ....................................................................
`119
`An Example of Using a Display List ........................, .......................
`Display-List Design Philosophy .......................................................121
`Creating and Executing a Display List ............................................123
`What’s Stored in a Display List .................................................126
`Executing a Display List ............................................................127
`Hierarchical Display Lists ..........................................................129
`Managing Display Lists and Their Indices ......................................131
`Executing Multiple Display Lists .....................................................132
`Encapsulating Mode Changes .........................................................137
`5. Color ................................................................................................139
`Color Perception ..............................................................................140
`Computer Color ...............................................................................142
`RGBA versus Color-Index Mode ......................................................144
`RGBA Display Mode ..................................................................145
`Color-Index Display Mode ........................................................147
`Choosing between RGBA and Color-Index Mode ....................149
`Specifying a Color and a Shading Model ........................................150
`Specifying a Color in RGBA Mode ............................................150
`Specifying a Color in Color-Index Mode ...................................151
`152
`Specifying a Shading Model ......................................................
`
`157
`
`6. Lighting ............................................................................................
`Real-World and OpenGL Lighting ...................................................159
`Emitted, Ambient, Diffuse, and Specular Light ........................160
`Material Colors ..........................................................................161
`RGB Values for Lights and Materials .........................................161
`A Simple Example: Rendering a Lit Sphere .....................................162
`Creating Light Sources .....................................................................165
`Color ..........................................................................................167
`168
`Position and Attenuation ..........................................................
`Spotlights ...................................................................................170
`Multiple Lights ..........................................................................171
`Controlling a Light’s Position and Direction ............................172
`
`xvii
`
`ATI Exhibit 2018, Page 16 of 554
`
`

`

`Selecting a Lighting Model ..............................................................177
`Global Ambient Light ................................................................177
`Local or Infinite Viewpoint .......................................................177
`Two-sided Lighting ....................................................................178
`Enabling Lighting ......................................................................179
`Defining Material Properties ............................................................179
`Diffuse and Ambient Reflection ................................................181
`Specular Reflection ....................................................................182
`Emission ......................................................................................182
`Changing Material Properties ....................................................183
`The Mathematics of Lighting ..........................................................188
`Material Emission ......................................................................189
`Scaled Global Ambient Light .....................................................189
`Contributions from Light Sources .............................................189
`Putting It All Together ...............................................................192
`Lighting in Color-Index Mode .........................................................192
`The Mathematics of Color-Index Mode Lighting .....................194
`
`7. Blending, Antialiasing, and Fog ...................................................... 195
`Blending ...........................................................................................196
`The Source and Destination Factors ..........................................197
`Sample Uses of Blending ...........................................................199
`A Blending Example ..................................................................202
`Three-Dimensional Blending with the Depth Buffer ................203
`Antialiasing ......................................................................................207
`Antialiasing Points or Lines .......................................................209
`Antialiasing Polygons ................................................................213
`Fog ....................................................................................................216
`Using Fog ...................................................................................217
`Fog Equations ............................................................................219
`
`8. Drawing Pixels, Bitmaps, Fonts, and Images .................................
`
`225
`
`Bitmaps and Fonts ...........................................................................227
`The Current Raster Position ......................................................229
`Drawing the Bitmap ..................................................................230
`Fonts and Display Lists ..............................................................
`- 231
`Defining and Using a Complete Font .......................................233
`
`XVlII
`
`ATI Exhibit 2018, Page 17 of 554
`
`

`

`Images .........................................................................................~ ..... 237
`
`
`Reading, Writing, and Copying Pixel Data ....................... ........ 238
`Magnifying or Reducing an Image ............................................241
`Storing, Transforming, and Mapping Pixels ....................................242
`Overview of the Pixel Modes .....................................................242
`Controlling Pixel-Storage Modes ............, .................................. 244
`Pixel-Transfer Operations ..........................................................247
`Pixel Mapping ............................................................................252
`
`9. Texture Mapping ..............................................................................255
`
`An Overview and an Example .........................................................259
`Steps in Texture Mapping ..........................................................259
`A Sample Program ..................................................~ .................. 260
`Specifying the Texture .....................................................................264
`Using a Texture’s Borders ..........................................................265
`Multiple Levels of Detail ...........................................................266
`Controlling Filtering ................................................... ...............271
`One-Dimensional Textures ........................................................274
`Modulating and Blending ................................................................274
`Assigning Texture Coordinates ........................................................276
`Computing Appropriate Texture Coordinates ..........................278
`Repeating and Clamping Textures ............................................280
`Automatic Texture-Coordinate Generation ....................................283
`Creating Contours .....................................................................284
`Environment Mapping ..............................................................287
`Advanced Features ...........................................................................289
`The Texture Matrix Stack ..........................................................289
`The q Coordinate .......................................................................290
`
`10. The Framebuffer ..............................................................................
`
`291
`
`Buffers and Their Uses .....................................................................293
`Clearing Buffers .........................................................................296
`Selecting Color Buffers for Writing ...........................................297
`Masking Buffers .........................................................................298
`Testing and Operating on Fragments ..............................................299
`Scissor. Test .................................................................................300
`Alpha Test ..................................................................................301
`
`xix
`
`ATI Exhibit 2018, Page 18 of 554
`
`

`

`Stencil Test .................................................................................302
`Depth Test ..................................................................................307
`Blending, Dithering, and Logical Operations ...........................308
`The Accumulation Buffer .................................................................311
`Scene Antialiasing ......................................................................312
`Motion Blur ...............................................................................318
`
`Depth of Field ............................................................. ............... 319
`Soft Shadows ..............................................................................323
`Jittering ......................................................................................323
`
`11. Evaluators

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket