home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / opnglapi.zip / OpenGL_Intro.INF (.txt) < prev    next >
OS/2 Help File  |  1997-04-12  |  74KB  |  1,316 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. The OpenGL Graphics Interface ΓòÉΓòÉΓòÉ
  3.  
  4. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  5.  
  6.  
  7.  Next: 1 Introduction 
  8.  
  9. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  10.  
  11.  
  12.  
  13. The OpenGL Graphics Interface 
  14.  
  15. Mark Segal 
  16. Kurt Akeley 
  17. Silicon Graphics Computer Systems 
  18. 2011 N. Shoreline Blvd., Mountain View, CA  94039 
  19. USA 
  20.  
  21.  
  22.  
  23. Abstract: 
  24.  
  25. Graphics standards are receiving increased attention in the computer graphics 
  26. community as more people write programs that use 3D graphics and as those 
  27. already possessing 3D graphical programs want those programs to run on a 
  28. variety of computers. 
  29.  
  30. OpenGL is an emerging graphics standard that provides advanced rendering 
  31. features while maintaining a simple programming model.  Its procedural 
  32. interface allows a graphics programmer to describe rendering tasks, whether 
  33. simple or complex, easily and efficiently. Because OpenGL is rendering-only, it 
  34. can be incorporated into any window system (and has been, into the X Window 
  35. System and the soon-to-be-released Windows NT) or can be used without a window 
  36. system. Finally, OpenGL is designed so that it can be implemented to take 
  37. advantage of a wide range of graphics hardware capabilities, from a basic 
  38. framebuffer to the most sophisticated graphics subsystems. 
  39.  
  40. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  41.  
  42.      1 Introduction 
  43.      2 OpenGL 
  44.      3 Basic OpenGL Operation 
  45.         -  3.1 The OpenGL Utility Library 
  46.      4 The OpenGL Pipeline 
  47.         -  4.1 Vertices and Primitives 
  48.         -  4.2 Clipping and Projection 
  49.         -  4.3 Rasterization 
  50.              -- 4.3.1 Pixel Rectangles and Bitmaps 
  51.         -  4.4 Texturing and Fog 
  52.         -  4.5 The Framebuffer 
  53.         -  4.6 Per-Fragment Operations 
  54.         -  4.7 Miscellaneous Functions 
  55.              -- 4.7.1 Evaluators 
  56.              -- 4.7.2 Display Lists 
  57.              -- 4.7.3 Feedback and Selection 
  58.              -- 4.7.4 OpenGL State 
  59.      5 Integration in a Window System 
  60.      6 Example: Three Kinds of Text 
  61.      7 Conclusion 
  62.      References 
  63.      About this document ... 
  64.  
  65.   ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  66.  
  67.  segal@asd.sgi.com 
  68.  Fri Sep 23 16:08:14 PDT 1994 
  69.  
  70.  
  71. ΓòÉΓòÉΓòÉ 2. 1 Introduction ΓòÉΓòÉΓòÉ
  72.  
  73. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  74.  
  75.  
  76.  Next: 2 OpenGL Up: The OpenGL Graphics Interface  Previous: The OpenGL 
  77. Graphics Interface 
  78.  
  79. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  80.  
  81.  
  82.  
  83. 1 Introduction 
  84.  
  85. Computer graphics (especially 3D graphics, and interactive 3D graphics in 
  86. particular) is finding its way into an increasing number of applications, from 
  87. simple graphing programs for personal computers to sophisticated modeling and 
  88. visualization software on workstations and supercomputers. As the interest in 
  89. computer graphics has grown, so has the desire to be able to write an 
  90. application so that it runs on a variety platforms with a range of graphical 
  91. capabilites. A graphics standard eases this task by eliminating the need to 
  92. write a distinct graphics driver for each platform on which the application is 
  93. to run. 
  94.  
  95. Several standards have succeeded in integrating specific domains of 2D 
  96. graphics. The PostScript page description language[4] has become widely 
  97. accepted, making it relatively easy to electronically exchange, and, to a 
  98. limited degree, manipulate static documents containing both text and 2D 
  99. graphics. The X window system[7] has become standard for UNIX workstations. A 
  100. programmer uses X to obtain a window on a graphics display into which either 
  101. text or 2D graphics may be drawn; X also provides a standard means for 
  102. obtaining user input from such devices as keyboards and mice. The adoption of X 
  103. by most workstation manufacturers means that a single program can produce 2D 
  104. graphics or obtain user input on a variety of workstations by simply 
  105. recompiling the program. This integration even works across a network: the 
  106. program may run on one workstation but display on and obtain user input from 
  107. another, even if the workstations on either end of the network are made by 
  108. different companies. 
  109.  
  110. For 3D graphics, several standards have been proposed, but none has (yet) 
  111. gained wide acceptance. One relatively well-known system is PHIGS (Programmer's 
  112. Hierarchical Interactive Graphics System). Based on GKS[5] (Graphics Kernel 
  113. System), PHIGS is an ANSI (American National Standards Institute) standard. 
  114. PHIGS (and its descendant, PHIGS+[9]) provides a means to manipulate and draw 
  115. 3D objects by encapsulating object descriptions and attributes into a display 
  116. list that is then referenced when the object is displayed or manipulated. One 
  117. advantage of the display list is that a complex object need be described only 
  118. once even if it is to be displayed many times. This is especially important if 
  119. the object to be displayed must be transmitted across a low-bandwidth channel 
  120. (such as a network). One disadvantage of a display list is that it can require 
  121. considerable effort to re-specify the object if it is being continually 
  122. modified as a result of user interaction. Another difficulty with PHIGS and 
  123. PHIGS+ (and with GKS) is that they lack support for advanced rendering features 
  124. such as texture mapping. 
  125.  
  126. PEX[8], which is often said to be an acronym for PHIGS Extension to X, extends 
  127. X to include the ability to manipulate and draw 3D objects. (PEXlib[6] is the 
  128. programmer's interface to the PEX protocol.), Among other extensions, PEX adds 
  129. immediate mode rendering to PHIGS, meaning that objects can be displayed as 
  130. they are described rather than having to first complete a display list. One 
  131. difficulty with PEX has been that different suppliers of the PEX interface have 
  132. chosen to support different features, making program portability problematic. 
  133. PEX also lacks advanced rendering feaures, and is available only to users of X. 
  134.  
  135. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  136.  
  137.  
  138.  Next: 2 OpenGL Up: The OpenGL Graphics Interface  Previous: The OpenGL 
  139. Graphics Interface 
  140.  
  141. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  142.  
  143. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  144.  
  145. segal@asd.sgi.com 
  146. Fri Sep 23 16:08:14 PDT 1994 
  147.  
  148.  
  149. ΓòÉΓòÉΓòÉ 3. 2 OpenGL ΓòÉΓòÉΓòÉ
  150.  
  151. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  152.  
  153.  
  154.  Next: 3 Basic OpenGL Operation Up: The OpenGL Graphics Interface  Previous: 1 
  155. Introduction 
  156.  
  157. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  158.  
  159.  
  160.  
  161. 2 OpenGL 
  162.  
  163. OpenGL (``GL'' for ``Graphics Library'') provides advanced rendering features 
  164. in either immediate mode or display list mode. While OpenGL is a relatively new 
  165. standard, it is very similar in both its functionality and its interface to 
  166. Silicon Graphics' IRIS GL, and there are many succesful 3D applications that 
  167. currently use IRIS GL for their 3D rendering. 
  168.  
  169. Like the graphics systems already discussed, OpenGL is a software interface to 
  170. graphics hardware. The interface consists of a set of several hundred 
  171. procedures and functions that allow a programmer to specify the objects and 
  172. operations involved in producing high-quality graphical images, specifically 
  173. color images of three-dimensional objects. Like PEX, OpenGL integrates 3D 
  174. drawing into X, but can also be integrated into other window systems (e.g. 
  175. Windows/NT) or can be used without a window system. 
  176.  
  177. OpenGL draws primitives into a framebuffer subject to a number of selectable 
  178. modes. Each primitive is a point, line segment, polygon, pixel rectangle, or 
  179. bitmap. Each mode may be changed independently; the setting of one does not 
  180. affect the settings of others (although many modes may interact to determine 
  181. what eventually ends up in the framebuffer). Modes are set, primitives 
  182. specified, and other OpenGL operations described by sending commands in the 
  183. form of function or procedure calls. 
  184.  
  185. Geometric primitives (points, line segments, and polygons) are defined by a 
  186. group of one or more vertices. A vertex defines a point, an endpoint of an 
  187. edge, or a corner of a polygon where two edges meet. Data (consisting of 
  188. positional coordinates, colors, normals, and texture coordinates) are 
  189. associated with a vertex and each vertex is processed independently, in order, 
  190. and in the same way. The only exception to this rule is if the group of 
  191. vertices must be clipped so that the indicated primitive fits within a 
  192. specified region; in this case vertex data may be modified and new vertices 
  193. created. The type of clipping depends on which primitive the group of vertices 
  194. represents. 
  195.  
  196. OpenGL provides direct control over the fundamental operations of 3D and 2D 
  197. graphics. This includes specification of such parameters as transformation 
  198. matrices, lighting equation coefficients, antialiasing methods, and pixel 
  199. update operators. It does not provide a means for describing or modeling 
  200. complex geometric objects. Another way to describe this situation is to say 
  201. that OpenGL provides mechanisms to describe how complex geometric objects are 
  202. to be rendered rather than mechanisms to describe the complex objects 
  203. themselves. 
  204.  
  205. The model for interpretation of OpenGL commands is client-server. That is, a 
  206. program (the client) issues commands, and these commands are interpreted and 
  207. processed by OpenGL (the server). The server may or may not operate on the same 
  208. computer as the client. 
  209.  
  210. The effects of OpenGL commands on the framebuffer are ultimately controlled by 
  211. the window system that allocates framebuffer resources. It is the window system 
  212. that determines which portions of the framebuffer that OpenGL may access at any 
  213. given time and that communicates to OpenGL how those portions are structured. 
  214. Similarly, display of framebuffer contents on a CRT monitor (including the 
  215. transformation of individual framebuffer values by such techniques as gamma 
  216. correction) is not addressed by OpenGL. Framebuffer configuration occurs 
  217. outside of OpenGL in conjunction with the window system; the initialization of 
  218. an OpenGL context occurs when the window system allocates a window for OpenGL 
  219. rendering. Additionally, OpenGL has no facilities for obtaining user input, 
  220. since it is expected that any window system under which OpenGL runs must 
  221. already provide such facilities. These considerations make OpenGL independent 
  222. of any particular window system. 
  223.  
  224. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  225.  
  226.  
  227.  Next: 3 Basic OpenGL Operation Up: The OpenGL Graphics Interface  Previous: 1 
  228. Introduction 
  229.  
  230. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  231.  
  232. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  233.  
  234. segal@asd.sgi.com 
  235. Fri Sep 23 16:08:14 PDT 1994 
  236.  
  237.  
  238. ΓòÉΓòÉΓòÉ 4. 3 Basic OpenGL Operation ΓòÉΓòÉΓòÉ
  239.  
  240. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  241.  
  242.  
  243.  Next: 3.1 The OpenGL Utility  Up: The OpenGL Graphics Interface  Previous: 2 
  244. OpenGL 
  245.  
  246. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  247.  
  248.  
  249.  
  250. 3 Basic OpenGL Operation 
  251.  
  252. Figure 1 shows a schematic diagram of OpenGL. Commands enter OpenGL on the 
  253. left. Most commands may be accumulated in a display list for processing at a 
  254. later time. Otherwise, commands are effectively sent through a processing 
  255. pipeline. 
  256.  
  257. The first stage provides an efficient means for approximating curve and surface 
  258. geometry by evaluating polynomial functions of input values. The next stage 
  259. operates on geometric primitives described by vertices: points, line segments, 
  260. and polygons. In this stage vertices are transformed and lit, and primitives 
  261. are clipped to a viewing volume in preparation for the next stage, 
  262. rasterization. The rasterizer produces a series of framebuffer addresses and 
  263. values using a two-dimensional description of a point, line segment, or 
  264. polygon. Each fragment so produced is fed to the next stage that performs 
  265. operations on individual fragments before they finally alter the framebuffer. 
  266. These operations include conditional updates into the framebuffer based on 
  267. incoming and previously stored depth values (to effect depth buffering), 
  268. blending of incoming fragment colors with stored colors, as well as masking and 
  269. other logical operations on fragment values. 
  270.  
  271. Finally, pixel rectangles and bitmaps bypass the vertex processing portion of 
  272. the pipeline to send a block of fragments directly through rasterization to the 
  273. individual fragment operations, eventually causing a block of pixels to be 
  274. written to the framebuffer. Values may also be read back from the framebuffer 
  275. or copied from one portion of the framebuffer to another. These transfers may 
  276. include some type of decoding or encoding. 
  277.  
  278. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  279.  
  280.      3.1 The OpenGL Utility Library 
  281.  
  282.   ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  283.  
  284.  segal@asd.sgi.com 
  285.  Fri Sep 23 16:08:14 PDT 1994 
  286.  
  287.  
  288. ΓòÉΓòÉΓòÉ 4.1. 3.1 The OpenGL Utility Library ΓòÉΓòÉΓòÉ
  289.  
  290. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  291.  
  292.  
  293.  Next: 4 The OpenGL Pipeline Up: 3 Basic OpenGL Operation  Previous: 3 Basic 
  294. OpenGL Operation 
  295.  
  296. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  297.  
  298.  
  299.  
  300. 3.1 The OpenGL Utility Library 
  301.  
  302. A guiding principle in the design of OpenGL has been to provide program 
  303. portability without mandating how higher-level graphical objects must be 
  304. described. As a result, the basic OpenGL interface does not support some 
  305. geometric objects that are traditionally associated with graphics standards. 
  306. For instance, an OpenGL implementation need not render concave polygons. One 
  307. reason for this omission is that concave polygon rendering algorithms are of 
  308. necessity more complex than those for rendering convex polygons, and different 
  309. concave polygon algorithms may be appropriate in different domains. In 
  310. particular, if a concave polygon is to be drawn more than once, it is more 
  311. efficient to first decompose it into convex polygons (or triangles) once and 
  312. then draw the convex polygons. 
  313.  
  314. A general concave polygon decomposer is provided as part of the OpenGL Utility 
  315. Library, which is provided with every OpenGL implementation. The Utility 
  316. Library also provides an interface, built on OpenGL's polynomial evaluators, to 
  317. describe and display NURBS curves and surfaces (with domain space trimming), as 
  318. well as a means for rendering spheres, cones, and cylinders. The Utility 
  319. Library serves both as a means to render useful geometric objects and as a 
  320. model for building other libraries that use OpenGL for rendering. 
  321.  
  322. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  323.  
  324. segal@asd.sgi.com 
  325. Fri Sep 23 16:08:14 PDT 1994 
  326.  
  327.  
  328. ΓòÉΓòÉΓòÉ 5. 4 The OpenGL Pipeline ΓòÉΓòÉΓòÉ
  329.  
  330. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  331.  
  332.  
  333.  Next: 4.1 Vertices and Primitives Up: The OpenGL Graphics Interface  Previous: 
  334. 3.1 The OpenGL Utility 
  335.  
  336. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  337.  
  338.  
  339.  
  340. 4 The OpenGL Pipeline 
  341.  
  342. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  343.  
  344.      4.1 Vertices and Primitives 
  345.      4.2 Clipping and Projection 
  346.      4.3 Rasterization 
  347.         -  4.3.1 Pixel Rectangles and Bitmaps 
  348.      4.4 Texturing and Fog 
  349.      4.5 The Framebuffer 
  350.      4.6 Per-Fragment Operations 
  351.      4.7 Miscellaneous Functions 
  352.         -  4.7.1 Evaluators 
  353.         -  4.7.2 Display Lists 
  354.         -  4.7.3 Feedback and Selection 
  355.         -  4.7.4 OpenGL State 
  356.  
  357.   ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  358.  
  359.  segal@asd.sgi.com 
  360.  Fri Sep 23 16:08:14 PDT 1994 
  361.  
  362.  
  363. ΓòÉΓòÉΓòÉ 5.1. 4.1 Vertices and Primitives ΓòÉΓòÉΓòÉ
  364.  
  365. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  366.  
  367.  
  368.  Next: 4.2 Clipping and Projection Up: 4 The OpenGL Pipeline  Previous: 4 The 
  369. OpenGL Pipeline 
  370.  
  371. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  372.  
  373.  
  374.  
  375. 4.1 Vertices and Primitives 
  376.  
  377. In OpenGL, most geometric objects are drawn by enclosing a series of coordinate 
  378. sets that specify vertices and optionally normals, texture coordinates, and 
  379. colors between glBegin/glEnd command pairs. For example, to specify a triangle 
  380. with vertices at  , , and , one could write: 
  381.  
  382. glBegin(GL_POLYGON);
  383.   glVertex3i(0,0,0);
  384.   glVertex3i(0,1,0);
  385.   glVertex3i(1,0,1);
  386. glEnd();
  387. The ten geometric objects that are drawn this way are summarized in Table 4.1. 
  388. This particular group of objects was selected because each object's geometry is 
  389. specified by a simple list of vertices, because each admits an efficient 
  390. rendering algorithm, and because it was determined that taken together these 
  391. objects satisfy the needs of nearly all graphics applications. 
  392.  
  393. Each vertex may be specified with two, three, or four coordinates (four 
  394. coordinates indicate a homogeneous three-dimensional location). In addition, a 
  395. current normal, current texture coordinates, and current color may be used in 
  396. processing each vertex. OpenGL uses normals in lighting calculations; the 
  397. current normal is a three-dimensional vector that may be set by sending three 
  398. coordinates that specify it. Color may consist of either red, green, blue, and 
  399. alpha values (when OpenGL has been initialized to RGBA mode) or a single color 
  400. index value (when initialization specified color index mode). One, two, three, 
  401. or four texture coordinates determine how a texture image maps onto a 
  402. primitive. 
  403.  
  404. Each of the commands that specify vertex coordinates, normals, colors, or 
  405. texture coordinates comes in several flavors to accomodate differing 
  406. application's data formats and numbers of coordinates. Data may also be passed 
  407. to these commands either as an argument list or as a pointer to a block of 
  408. storage containing the data. The variants are distinguished (in the C language) 
  409. by mnemonic suffixes. 
  410.  
  411. Most OpenGL commands that do not specify vertices and associated information 
  412. may not appear between glBegin and glEnd. This restriction allows 
  413. implementations to run in an optimized mode while processing primitive 
  414. specifications so that primitives may be processed as efficiently as possible. 
  415.  
  416. When a vertex is specified, the current color, normal, and texture coordinates 
  417. are used to obtain values that are then associated with the vertex (Figure 2). 
  418. The vertex itself is transformed by the model-view matrix, a  matrix which can 
  419. represent both linear and translational transformations. The color is obtained 
  420. from either computing a color from lighting or, if lighting is disabled, from 
  421. the current color. Texture coordinates are similarly passed through a texture 
  422. coordinate generation function (which may be the identity). The resulting 
  423. texture coordinates are transformed by the texture matrix (this matrix may be 
  424. used to effectively scale or rotate a texture that is applied to a primitive). 
  425. Figure 4 shows some results of using texture coordinate generation functions. 
  426.  
  427. A number of commands control the values of parameters used in processing a 
  428. vertex. One group of commands manipulates transformation matrices; these 
  429. commands are designed to form an efficient means for generating and 
  430. manipulating the transformations that occur in hierarchical 3D graphics scenes. 
  431. A matrix may be loaded or multiplied by a scaling, rotation, translation, or 
  432. general matrix. Another command controls which matrix is affected by a 
  433. manipulation: the model-view matrix, the texture matrix, or the projection 
  434. matrix (to be described presently). Each of these three matrix types also has 
  435. an associated stack onto which matrices may be pushed or popped. 
  436.  
  437. Lighting parameters are grouped into three categories: material parameters, 
  438. that describe the reflectance characteristics of the surface being lit, light 
  439. source parameters, that describe the emission properties of each light source, 
  440. and lighting model parameters, that describe global properties of the lighting 
  441. model. Lighting is performed on a per-vertex basis; lighting results are 
  442. eventually interpolated across a line segment or polygon. The general form of 
  443. the lighting equation includes terms for constant, diffuse, and specular 
  444. illumination, each of which may be attenuated by the distance of the vertex 
  445. from the light source. A programmer may sacrifice realism in favor of faster 
  446. lighting calculations by indicating that the viewer, the light sources, or both 
  447. should be assumed to be infinitely far from the scene. Figure 3 shows some 
  448. results with lighting disabled and enabled. 
  449.  
  450. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  451.  
  452.  
  453.  Next: 4.2 Clipping and Projection Up: 4 The OpenGL Pipeline  Previous: 4 The 
  454. OpenGL Pipeline 
  455.  
  456. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  457.  
  458. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  459.  
  460. segal@asd.sgi.com 
  461. Fri Sep 23 16:08:14 PDT 1994 
  462.  
  463.  
  464. ΓòÉΓòÉΓòÉ 5.2. 4.2 Clipping and Projection ΓòÉΓòÉΓòÉ
  465.  
  466. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  467.  
  468.  
  469.  Next: 4.3 Rasterization Up: 4 The OpenGL Pipeline  Previous: 4.1 Vertices and 
  470. Primitives 
  471.  
  472. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  473.  
  474.  
  475.  
  476. 4.2 Clipping and Projection 
  477.  
  478. Once a primitive has been assembled from a group of vertices, it is subjected 
  479. to clipping by clip planes. The positions of these planes (every OpenGL 
  480. implementation must provide at least six) is specifiable using the glClipPlane 
  481. command. Each plane may be enabled or disabled individually. 
  482.  
  483. In the case of a point, the clip planes either have no effect on the point or 
  484. annihilate it depending as the point lies inside or outside the intersection of 
  485. the half-spaces determined by the clip planes. In the case of a line segment or 
  486. polygon, the clip planes may have no effect on, annihilate, or alter the 
  487. original primitive. In the later case, new vertices may be created between 
  488. edges described by original vertices; color and texture coordinate values for 
  489. these new vertices are found by appropriately interpolating the values assigned 
  490. to the original vertices. 
  491.  
  492. After the clip planes (if any) have been applied, the vertex coordinates of the 
  493. resulting primitive are transformed by the projection matrix. Then view frustum 
  494. clipping occurs. View frustum clipping is like clip plane application, but with 
  495. fixed planes: if coordinates after transformation are given by , then the six 
  496. half spaces defined by these planes are  , ,  , ,  , . 
  497.  
  498. With view frustum clipping completed, each group of vertex coordinates is 
  499. projected by computing , , and . The resulting values (which must each lie in 
  500. [-1,1]) are multiplied and offset by parameters that control the size of the 
  501. viewport into which primitives are to be drawn. The glViewport (for  and ) and 
  502. glDepthRange (for ) commands control these parameters. 
  503.  
  504. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  505.  
  506. segal@asd.sgi.com 
  507. Fri Sep 23 16:08:14 PDT 1994 
  508.  
  509.  
  510. ΓòÉΓòÉΓòÉ 5.3. 4.3 Rasterization ΓòÉΓòÉΓòÉ
  511.  
  512. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  513.  
  514.  
  515.  Next: 4.3.1 Pixel Rectangles and  Up: 4 The OpenGL Pipeline  Previous: 4.2 
  516. Clipping and Projection 
  517.  
  518. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  519.  
  520.  
  521.  
  522. 4.3 Rasterization 
  523.  
  524. Rasterization converts a projected, viewport-scaled primitive into a series of 
  525. fragments. Each fragment comprises a location of a pixel in the framebuffer 
  526. along with color, texture coordinates, and depth ( ). When a line segment or 
  527. polygon is rasterized, these associated data are interpolated across the 
  528. primitive to obtain a value for each fragment. 
  529.  
  530. The rasterization of each kind of primitive is controlled by a corresponding 
  531. group of parameters. One width affects point rasterization and another affects 
  532. line segment rasterization. Additionally, a stipple sequence may be specified 
  533. for line segments, and a stipple pattern may be speicifed for polygons. 
  534.  
  535. Antialiasing may be enabled or disabled individually for each primitive type. 
  536. When enabled, a coverage value is computed for each fragment describing the 
  537. portion of that fragment that is covered by the projected primitive. This 
  538. coverage value is used after texturing has been completed to modify the 
  539. fragment's alpha value (in RGBA mode) or color index value (in color index 
  540. mode). 
  541.  
  542. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  543.  
  544.      4.3.1 Pixel Rectangles and Bitmaps 
  545.  
  546.   ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  547.  
  548.  segal@asd.sgi.com 
  549.  Fri Sep 23 16:08:14 PDT 1994 
  550.  
  551.  
  552. ΓòÉΓòÉΓòÉ 5.3.1. 4.3.1 Pixel Rectangles and Bitmaps ΓòÉΓòÉΓòÉ
  553.  
  554. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  555.  
  556.  
  557.  Next: 4.4 Texturing and Fog Up: 4.3 Rasterization  Previous: 4.3 Rasterization 
  558.  
  559. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  560.  
  561.  
  562.  
  563. 4.3.1 Pixel Rectangles and Bitmaps 
  564.  
  565. Pixel rectangles and bitmaps are the two primitives that are unaffected by the 
  566. geometric operations that occur in the pipeline prior to rasterization. A pixel 
  567. rectangle is a group of values destined for the framebuffer (typically the 
  568. values represent colors, although provision is made for other types of data, 
  569. such as depth values). The values, stored as a block of data in host memory, 
  570. are sent using glDrawPixels. Arguments to glDrawPixels indicate the memory 
  571. address of the data, the type of data, and the width and height of the 
  572. rectangle that the data values form. In addition, two groups of parameters are 
  573. maintained that control the decoding of the stored values. The first group 
  574. describes how the values are packed in memory and provides a means for 
  575. selecting a subrectangle from a larger containing rectangle. The second group 
  576. controls conversions that may be applied to the values after they obtained: 
  577. values may be scaled, offset and mapped by means of look-up tables. These 
  578. various parameters form a flexible means for specifying rectangular images 
  579. stored in a variety of formats. 
  580.  
  581. Once obtained, the resulting values produce a rectangle of fragments. The 
  582. location of this rectangle is controlled by the current raster position, which 
  583. is treated very much like a point (including associating a color and texture 
  584. coordinates with it), except that it is set with a separate command 
  585. (glRasterPos) that does not occur between glBegin and glEnd. The rectangle's 
  586. size is determined by its specified width and height as well as the setting of 
  587. pixel rectangle zoom parameters (set with glPixelZoom). 
  588.  
  589. A bitmap is similar to a pixel rectangle, except that it specifies a rectangle 
  590. of zeros and ones, and is designed for describing characters that can be placed 
  591. at a projected 3D location (through the current raster position). Each one in 
  592. the bitmap produces a fragment whose associated values are those of the current 
  593. raster position, while each zero produces no fragment. The glBitmap command 
  594. also specifies offsets that control how the bitmap is placed with respect to 
  595. the current raster position and how the current raster position is advanced 
  596. after the bitmap is drawn (thus determining the relative positions of 
  597. sequential bitmaps). 
  598.  
  599. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  600.  
  601.  
  602.  Next: 4.4 Texturing and Fog Up: 4.3 Rasterization  Previous: 4.3 Rasterization 
  603.  
  604. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  605.  
  606. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  607.  
  608. segal@asd.sgi.com 
  609. Fri Sep 23 16:08:14 PDT 1994 
  610.  
  611.  
  612. ΓòÉΓòÉΓòÉ 5.4. 4.4 Texturing and Fog ΓòÉΓòÉΓòÉ
  613.  
  614. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  615.  
  616.  
  617.  Next: 4.5 The Framebuffer Up: 4 The OpenGL Pipeline  Previous: 4.3.1 Pixel 
  618. Rectangles and 
  619.  
  620. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  621.  
  622.  
  623.  
  624. 4.4 Texturing and Fog 
  625.  
  626. OpenGL provides a general means for generating texture-mapped primitives 
  627. (Figure 4). When texturing is enabled, each fragment's texture coordinates 
  628. index a texture image, generating a texel. This texel may have between one and 
  629. four components, so that a texture image may represent, for example, intensity 
  630. only (one component), RGB color (three components), or RGBA color (four 
  631. components). Once the texel is obtained, it modifies the fragment's color 
  632. according to a specifiable texture environment. 
  633.  
  634. A texture image is specified using glTexImage, which takes arguments similar to 
  635. those of glDrawpixels, so that the same image format may be used whether that 
  636. image is destined for the framebuffer or texture memory. In addition, 
  637. glTexImage may be used to specify mipmaps[3] so that a texture may be filtered 
  638. as it is applied to a primitive. The filter function (and whether or not it 
  639. implies mipmaps) is controlled by a number of specifiable parameters using 
  640. glTexParameter. The texture environment is selected with glTexEnv. 
  641.  
  642. Finally, after texturing, a fog function (if enabled) is applied to each 
  643. fragment. The fog function blends the incoming color with a constant 
  644. (specifiable) fog color according to a computed weighting factor. This factor 
  645. is a function of the distance (or an approximation to the distance) from the 
  646. viewer to the 3D point that corresponds to the fragment. Exponential fog 
  647. simulates atmospheric fog and haze, while linear fog may be used to produce 
  648. depth-cueing. 
  649.  
  650. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  651.  
  652. segal@asd.sgi.com 
  653. Fri Sep 23 16:08:14 PDT 1994 
  654.  
  655.  
  656. ΓòÉΓòÉΓòÉ 5.5. 4.5 The Framebuffer ΓòÉΓòÉΓòÉ
  657.  
  658. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  659.  
  660.  
  661.  Next: 4.6 Per-Fragment Operations Up: 4 The OpenGL Pipeline  Previous: 4.4 
  662. Texturing and Fog 
  663.  
  664. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  665.  
  666.  
  667.  
  668. 4.5 The Framebuffer 
  669.  
  670. The destination of rasterized fragments is the framebuffer, where the results 
  671. of OpenGL rendering may be displayed. In OpenGL, the framebuffer consists of a 
  672. rectangular array of pixels corresponding to the window allocated for OpenGL 
  673. rendering. Each pixel is simply a set of some number of bits. Corresponding 
  674. bits from each pixel in the framebuffer are grouped together into a bitplane; 
  675. each bitplane contains a single bit from each pixel. 
  676.  
  677. The bitplanes are grouped into several logical buffers: the color, depth, 
  678. stencil, and accumulation buffers. The color buffer is where fragment color 
  679. information is placed. The depth buffer is where fragment depth information is 
  680. placed, and is typically used to effect hidden surface removal through 
  681. -buffering. The stencil buffer contains values each of which may be updated 
  682. whenever a corresponding fragment reaches the framebuffer. Stencil values are 
  683. useful in multi-pass algorithms, in which a scene is rendered several times, to 
  684. achieve such effects as CSG (union, intersection, and difference) operations on 
  685. a number of objects and capping of objects sliced by clip planes. 
  686.  
  687. The accumulation buffer is also useful in multipass algorithms; it can be 
  688. manipulated so that it averages values stored in the color buffer. This can 
  689. effect such effects as full-screen anti-aliasing (by jittering the viewpoint 
  690. for each pass), depth-of-field (by jittering the angle of view), and motion 
  691. blur (by stepping the scene in time)[2]. Multi-pass algorithms are simple to 
  692. implement in OpenGL, because only a small number of parameters must be 
  693. manipulated before each pass, and changing the values of these parameters is 
  694. both efficient and without side effects on the values of other parameters that 
  695. must remain constant. 
  696.  
  697. OpenGL supports both double-buffering and stereo, so the color buffer is 
  698. further subdivided into four buffers: the front left &right buffers and the 
  699. back left &right buffers. The front buffers are those that are typically 
  700. displayed while the back buffers (in a double-buffered application) are being 
  701. used to compose the next frame. A monoscopic application would use only the 
  702. left buffers. In addition, there may be some number of auxiliary buffers (these 
  703. are never displayed) into which fragments may be rendered. Any of the buffers 
  704. may be individually enabled or disabled for fragment writing. ; 
  705.  
  706. A particular copy of OpenGL may not provide depth, stencil, accumulation, or 
  707. auxiliary buffers. Further, only some subset of the left &right front and left 
  708. &right back buffers may be present. Different buffers may be available (each 
  709. with varying numbers of bits) depending on the platform and window system on 
  710. which OpenGL is running. Every window system must, however, provide at least 
  711. one window type with a front (left) color buffer, and depth, stencil, and 
  712. accumulation buffers. This guarantees a minimum configuration that a programmer 
  713. may assume is present no matter where an OpenGL program is run. ; 
  714.  
  715. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  716.  
  717.  
  718.  Next: 4.6 Per-Fragment Operations Up: 4 The OpenGL Pipeline  Previous: 4.4 
  719. Texturing and Fog 
  720.  
  721. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  722.  
  723. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  724.  
  725. segal@asd.sgi.com 
  726. Fri Sep 23 16:08:14 PDT 1994 
  727.  
  728.  
  729. ΓòÉΓòÉΓòÉ 5.6. 4.6 Per-Fragment Operations ΓòÉΓòÉΓòÉ
  730.  
  731. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  732.  
  733.  
  734.  Next: 4.7 Miscellaneous Functions Up: 4 The OpenGL Pipeline  Previous: 4.5 The 
  735. Framebuffer 
  736.  
  737. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  738.  
  739.  
  740.  
  741. 4.6 Per-Fragment Operations 
  742.  
  743. Before being placed into its corresponding frame buffer location, a fragment is 
  744. subjected to a series of tests and modifications, each of which may be 
  745. individually enabled, disabled, and controlled. The tests and modifications 
  746. include the stencil test, the depth buffer test (typically used to achieve 
  747. hidden surface removal), and blending. We briefly describe only a subset of the 
  748. tests; for specifics, the reader should consult [10]. 
  749.  
  750. The stencil test, when enabled, compares the value in the stencil buffer 
  751. corresponding to the fragment with a reference value. If the comparison 
  752. succeeds, then the stored stencil value may be modified by a function such as 
  753. increment, decrement, or clear, and the fragment proceeds to the next test. If 
  754. the test fails, the stored value may be updated using a different function, and 
  755. the fragment is discarded. Similarly, the depth buffer test compares the 
  756. fragment's depth value with the corresponding value stored in the depth buffer. 
  757. If the comparison succeeds, the fragment is passed to the next stage, and the 
  758. fragment's depth value replaces the value stored in the depth buffer (if the 
  759. depth buffer has been enabled for writing). If the comparison fails, the 
  760. fragment is discarded, and no depth buffer modification occurs. 
  761.  
  762. Blending mixes a fragment's color with the corresponding color already stored 
  763. in the framebuffer (blending occurs once for each color buffer enabled for 
  764. writing). The exact blending function may be specified with glBlendFunction. 
  765.  
  766. Blending is the operation that actually achieves antialiasing for RGBA colors. 
  767. Recall that the coverage computation only modifies a fragment's alpha value; 
  768. this alpha value must be used to blend the fragment color with the already 
  769. stored background color to obtain the antialiasing effect. Blending is also 
  770. used to achieve transparency. 
  771.  
  772. In addition to modifying individual framebuffer values with a series of 
  773. fragments, a whole buffer or buffers may be cleared to some specifiable 
  774. constant value. Clear values are maintained for the color buffers (all color 
  775. buffers share a single value), the stencil buffer, the depth buffer, and the 
  776. accumulation buffer. 
  777.  
  778. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  779.  
  780.  
  781.  Next: 4.7 Miscellaneous Functions Up: 4 The OpenGL Pipeline  Previous: 4.5 The 
  782. Framebuffer 
  783.  
  784. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  785.  
  786. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  787.  
  788. segal@asd.sgi.com 
  789. Fri Sep 23 16:08:14 PDT 1994 
  790.  
  791.  
  792. ΓòÉΓòÉΓòÉ 5.7. 4.7 Miscellaneous Functions ΓòÉΓòÉΓòÉ
  793.  
  794. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  795.  
  796.  
  797.  Next: 4.7.1 Evaluators Up: 4 The OpenGL Pipeline  Previous: 4.6 Per-Fragment 
  798. Operations 
  799.  
  800. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  801.  
  802.  
  803.  
  804. 4.7 Miscellaneous Functions 
  805.  
  806. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  807.  
  808.      4.7.1 Evaluators 
  809.      4.7.2 Display Lists 
  810.      4.7.3 Feedback and Selection 
  811.      4.7.4 OpenGL State 
  812.  
  813.   ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  814.  
  815.  segal@asd.sgi.com 
  816.  Fri Sep 23 16:08:14 PDT 1994 
  817.  
  818.  
  819. ΓòÉΓòÉΓòÉ 5.7.1. 4.7.1 Evaluators ΓòÉΓòÉΓòÉ
  820.  
  821. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  822.  
  823.  
  824.  Next: 4.7.2 Display Lists Up: 4.7 Miscellaneous Functions  Previous: 4.7 
  825. Miscellaneous Functions 
  826.  
  827. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  828.  
  829.  
  830.  
  831. 4.7.1 Evaluators 
  832.  
  833. Evaluators allow the specification of polynomial functions of one or two 
  834. variables whose values determine primitives' vertex coordinates, normal 
  835. coordinates, color, or texture coordinates. A polynomial map, specified in 
  836. terms of the Bezier basis[1] may be given for any of these groups of values. 
  837. Once defined and enabled, the maps are invoked in one of two ways. The first 
  838. way is to cause a single evaluation of each enabled map by specifying a point 
  839. in the maps' domain using glEvalCoord. This command is meant to be placed 
  840. between glBegin and glEnd so that individual primitives may be built each of 
  841. which approximates a portion of a curve or surface. The second method is to 
  842. specify a grid in domain space using glEvalMesh. Each vertex of the evaluated 
  843. grid is a function of the defined polynomials. glEvalMesh generates its own 
  844. primitives, and thus cannot be placed between glBegin and glEnd. 
  845.  
  846. The evaluator interface provides a basis for building a more general curve and 
  847. surface package on top of OpenGL. One advantage of providing the evaluators in 
  848. OpenGL instead of a more complex NURBS interface is that applications that 
  849. represent curves and surfaces as other than NURBS or that make use of special 
  850. surface properties still have access to efficient polynomial evaluators (that 
  851. may be implemented in graphics hardware) without incurring the costs of 
  852. converting to a NURBS representation. 
  853.  
  854. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  855.  
  856. segal@asd.sgi.com 
  857. Fri Sep 23 16:08:14 PDT 1994 
  858.  
  859.  
  860. ΓòÉΓòÉΓòÉ 5.7.2. 4.7.2 Display Lists ΓòÉΓòÉΓòÉ
  861.  
  862. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  863.  
  864.  
  865.  Next: 4.7.3 Feedback and Selection Up: 4.7 Miscellaneous Functions  Previous: 
  866. 4.7.1 Evaluators 
  867.  
  868. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  869.  
  870.  
  871.  
  872. 4.7.2 Display Lists 
  873.  
  874. A display list encapsulates a group of OpenGL commands so that they may be 
  875. later issued (in the order originally specified) by simply naming the display 
  876. list. This is accomplished by surrounding the commands to be encapsulated with 
  877. glBeginList and glEndList. glBeginList takes an integer argument that is the 
  878. numeric name of the display list. 
  879.  
  880. Display lists may be redefined, but not edited. The lack of editing simplifies 
  881. display list memory management in the OpenGL server, eliminating the 
  882. performance penalty such management would incur. Display lists may, however, be 
  883. nested (one display list may invoke another). An effect similar to display list 
  884. editing may thus be obtained by: (1) building a list containing a number of 
  885. subordinate lists; (2) redefining the subordinate lists. 
  886.  
  887. A single display list is invoked with glCallList. glCallLists calls a series of 
  888. display lists in succession. Arguments to glCallLists specify an array of 
  889. integers that are added to a list base to form the series of display list 
  890. numbers. glCallLists is useful to display a string of characters when the 
  891. commands that generate each character have been encapsulated in their own 
  892. display list. Section 6 gives an example using glCallLists. 
  893.  
  894. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  895.  
  896. segal@asd.sgi.com 
  897. Fri Sep 23 16:08:14 PDT 1994 
  898.  
  899.  
  900. ΓòÉΓòÉΓòÉ 5.7.3. 4.7.3 Feedback and Selection ΓòÉΓòÉΓòÉ
  901.  
  902. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  903.  
  904.  
  905.  Next: 4.7.4 OpenGL State Up: 4.7 Miscellaneous Functions  Previous: 4.7.2 
  906. Display Lists 
  907.  
  908. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  909.  
  910.  
  911.  
  912. 4.7.3 Feedback and Selection 
  913.  
  914. As described so far, OpenGL renders primitives into the framebuffer. OpenGL has 
  915. two additional modes. Feedback mode returns information about primitives 
  916. (vertex coordinates, color, and texture coordinates) after they have been 
  917. processed but before they are rasterized. This mode is useful, for instance, if 
  918. OpenGL output is to be fed to a pen plotter instead of a framebuffer. 
  919.  
  920. In selection mode, OpenGL returns a hit whenever a (clipped) primitive lies 
  921. within the view frustum. This mode is used, for instance, to determine which 
  922. portions of a scene lie within a region of the window centered around the mouse 
  923. position (this is often termed picking). The Utility Library provides routines 
  924. to manipulate the transformations so that when the scene is redrawn, only those 
  925. portions that lie within a specified region about a specified position will 
  926. return hits. Each hit returns the contents of the selection stack, which may be 
  927. manipulated as the scene is drawn. By appropriately manipulating the stack, the 
  928. application can identify the scene features that intersected the selection 
  929. region. 
  930.  
  931. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  932.  
  933. segal@asd.sgi.com 
  934. Fri Sep 23 16:08:14 PDT 1994 
  935.  
  936.  
  937. ΓòÉΓòÉΓòÉ 5.7.4. 4.7.4 OpenGL State ΓòÉΓòÉΓòÉ
  938.  
  939. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  940.  
  941.  
  942.  Next: 5 Integration in a  Up: 4.7 Miscellaneous Functions  Previous: 4.7.3 
  943. Feedback and Selection 
  944.  
  945. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  946.  
  947.  
  948.  
  949. 4.7.4 OpenGL State 
  950.  
  951. Finally, the value of nearly any OpenGL parameter may be obtained by an 
  952. appropariate get command. There is also a stack of parameter values that may be 
  953. pushed and popped. For stacking purposes, all parameters are divided into 21 
  954. functional groups; any combination of these groups may be pushed onto the 
  955. attribute stack in one operation (a pop operation automatically restores only 
  956. those values that were last pushed). The get commands and parameter stacks make 
  957. it possible to implement various libraries, each without interfering with 
  958. another's OpenGL usage. 
  959.  
  960. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  961.  
  962. segal@asd.sgi.com 
  963. Fri Sep 23 16:08:14 PDT 1994 
  964.  
  965.  
  966. ΓòÉΓòÉΓòÉ 6. 5 Integration in a Window System ΓòÉΓòÉΓòÉ
  967.  
  968. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  969.  
  970.  
  971.  Next: 6 Example: Three Kinds  Up: The OpenGL Graphics Interface  Previous: 
  972. 4.7.4 OpenGL State 
  973.  
  974. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  975.  
  976.  
  977.  
  978. 5 Integration in a Window System 
  979.  
  980. OpenGL draws 3D and 2D scenes into a framebuffer, but to be useful in a 
  981. heterogeneous environment, OpenGL must be made subordinate to a window system 
  982. that allocates and controls framebuffer resources. We describe how OpenGL is 
  983. integrated into the X Window System, but integration into other window systems 
  984. (Windows NT, for instance) is similar. 
  985.  
  986. X provides both a procedural interface and a network protocol for creating and 
  987. manipulating framebuffer windows and drawing certain 2D objects into those 
  988. windows. OpenGL is integrated into X by making it a formal X extension called 
  989. GLX. GLX consists of about a dozen calls (with corresponding network encodings) 
  990. that provide a compact, general embedding of OpenGL in X. As with other X 
  991. extensions (two examples are Display PostScript and PEX), there is a specific 
  992. network protocol for OpenGL rendering commands encapsulated in the X byte 
  993. stream. 
  994.  
  995. OpenGL requires a region of a framebuffer into which primitives may be 
  996. rendered. In X, such a region is called a drawable. A window, one type of 
  997. drawable, has associated with it a visual that describes the window's 
  998. framebuffer configuration. In GLX, the visual is extended to include 
  999. information about OpenGL buffers that are not present in unadorned X (depth, 
  1000. stencil, accumulation, front, back, etc.). 
  1001.  
  1002. X also provides a second type of drawable, the pixmap, which is an off-screen 
  1003. framebuffer. GLX provides a GLX pixmap that corresponds to an X pixmap, but 
  1004. with additional buffers as indicated by some visual. The GLX pixmap provides a 
  1005. means for OpenGL applications to render off-screen into a software buffer. 
  1006.  
  1007. To make use of an OpenGL-capable drawable, the programmer creates an OpenGL 
  1008. context targeted to that drawable. When the context is created, a copy of an 
  1009. OpenGL renderer is initialized with the visual information about the drawable. 
  1010. This OpenGL renderer is conceptually (if not actually) part of the X server, so 
  1011. that, once created, an X client may connect to the OpenGL context and issue 
  1012. OpenGL commands (Figure 5). Multiple OpenGL contexts may be created that are 
  1013. targeted to distinct or shared drawables. Any OpenGL-capable drawable may also 
  1014. be used for standard X drawing (those buffers of the drawable that are unused 
  1015. by X are ignored by it). Calls are provided to synchronize drawing between 
  1016. OpenGL and X; it is the client's responsibility to carry out this 
  1017. synchronization if required. 
  1018.  
  1019. A GLX client that is running on a computer of which the graphics subsystem is a 
  1020. part may avoid passing OpenGL tokens through the X server. Such direct 
  1021. rendering may result in increased graphics performance since the overhead of 
  1022. token encoding, decoding, and dispatching is eliminated. Direct rendering is 
  1023. supported but not required by GLX (a client may determine whether or not a 
  1024. server provides direct rendering). Direct rendering is feasible because 
  1025. sequentiality need not be maintained between X commands and OpenGL commands 
  1026. except where commands are explicitly synchronized. 
  1027.  
  1028. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1029.  
  1030.  
  1031.  Next: 6 Example: Three Kinds  Up: The OpenGL Graphics Interface  Previous: 
  1032. 4.7.4 OpenGL State 
  1033.  
  1034. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1035.  
  1036. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1037.  
  1038. segal@asd.sgi.com 
  1039. Fri Sep 23 16:08:14 PDT 1994 
  1040.  
  1041.  
  1042. ΓòÉΓòÉΓòÉ 7. 6 Example: Three Kinds of Text ΓòÉΓòÉΓòÉ
  1043.  
  1044. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1045.  
  1046.  
  1047.  Next: 7 Conclusion Up: The OpenGL Graphics Interface  Previous: 5 Integration 
  1048. in a 
  1049.  
  1050. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1051.  
  1052.  
  1053.  
  1054. 6 Example: Three Kinds of Text 
  1055.  
  1056. To illustrate the flexibility of OpenGL in performing different types of 
  1057. rendering tasks, we outline three methods for the particular task of displaying 
  1058. text. The three methods are: using bitmaps, using line segments to generate 
  1059. outlined text, and using a texture to generate antialiased text. 
  1060.  
  1061. The first method defines a font as a series of display lists, each of which 
  1062. contains a single bitmap: 
  1063.  
  1064.       for i = start + 'a'  to  start + 'z' {
  1065.         glBeginList(i);
  1066.           glBitmap( ... );
  1067.         glEndList();
  1068.       }
  1069. Recall that glBitmap specifies both a pointer to an encoding of the bitmap and 
  1070. offsets that indicate how the bitmap is positioned relative to previous and 
  1071. subsequent bitmaps. In GLX, the effect of defining a number of display lists in 
  1072. this way may also be achieved by calling glXUseXFont. glXUseXFont generates a 
  1073. number of display lists, each of which contains the bitmap (and associated 
  1074. offsets) of a single character from the specified X font. In either case, the 
  1075. string ``Bitmapped Text'' whose origin is the projection of a location in 3D is 
  1076. produced by 
  1077.  
  1078.         glRasterPos3i(x, y, z);
  1079.         glListBase(start);
  1080.         glCallLists("Bitmapped Text", 14, GL_BYTE);
  1081.  See Figure 6a. glListBase sets the display list base so that the subsequent 
  1082. glCallLists references the characters just defined. The second argument to 
  1083. glCallLists indicates the length of the string; the third argument indicates 
  1084. that the string is an array of 8-bit bytes (16- and 32-bit integers may be used 
  1085. to access fonts with more than 256 characters). 
  1086.  
  1087. The second method is similar to the first, but uses line segments to outline 
  1088. each character. Each display list contains a series of line segments: 
  1089.  
  1090.         glTranslate(ox, oy, 0);
  1091.         glBegin(GL_LINES);
  1092.           glVertex(...);
  1093.              ...
  1094.         glEnd();
  1095.         glTranslate(dx-ox, dy-oy, 0);
  1096. The initial glTranslate updates the transformation matrix to position the 
  1097. character with respect to a character origin. The final glTranslate updates 
  1098. that character origin in preparation for the following character. A string is 
  1099. displayed with this method just as in the previous example, but since line 
  1100. segments have 3D position, the text may be oriented as well as positioned in 3D 
  1101. (Figure 6b). More generally, the display lists could contain both polygons and 
  1102. line segments, and these could be antialiased. 
  1103.  
  1104. Finally, a different approach may be taken by creating a texture image 
  1105. containing an array of characters. A certain range of texture coordinates thus 
  1106. corresponds to each character in the texture image. Each character may be drawn 
  1107. in any size and in any 3D orientation by drawing a rectangle with the 
  1108. appropriate texture coordinates at its vertices: 
  1109.  
  1110.         glTranslate(ox, oy, 0);
  1111.         glBegin(GL_QUADS)
  1112.           glTexCoord( ... );
  1113.           glVertex( ... );
  1114.              ...
  1115.         glEnd();
  1116.         glTranslate(dx-ox, dy-oy, 0);
  1117. If each group of commands for each character is enclosed in a display list, and 
  1118. the commands for describing the texture image itself are enclosed in another 
  1119. display list called TEX, then the string ``Texture mapped text!!'' may be 
  1120. displayed by: 
  1121.  
  1122.         glCallList(TEX);
  1123.         glCallLists("Texture mapped text!!", 22, GL_BYTE);
  1124.  One advantage of this method is that, by simply using appropriate texture 
  1125. filtering, the resulting characters are antialiased (Figure 6c). 
  1126.  
  1127. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1128.  
  1129.  
  1130.  Next: 7 Conclusion Up: The OpenGL Graphics Interface  Previous: 5 Integration 
  1131. in a 
  1132.  
  1133. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1134.  
  1135. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1136.  
  1137. segal@asd.sgi.com 
  1138. Fri Sep 23 16:08:14 PDT 1994 
  1139.  
  1140.  
  1141. ΓòÉΓòÉΓòÉ 8. 7 Conclusion ΓòÉΓòÉΓòÉ
  1142.  
  1143. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1144.  
  1145.  
  1146.  Next: References Up: The OpenGL Graphics Interface  Previous: 6 Example: Three 
  1147. Kinds 
  1148.  
  1149. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1150.  
  1151.  
  1152.  
  1153. 7 Conclusion 
  1154.  
  1155. OpenGL is a flexible procedural interface that allows a programmer to describe 
  1156. a variety of 3D rendering tasks. It does not enforce a particular method of 
  1157. describing 3D objects, but instead provides the basic means by which those 
  1158. objects, no matter how described, may be rendered. This mechanistic view of 
  1159. rendering provides for efficient use of graphics hardware, whether that 
  1160. hardware is a simple framebuffer or a graphics subsystem capable of directly 
  1161. manipulating 3D data. OpenGL is rendering-only, so it is independent of the 
  1162. methods by which user input and other window system functions are achieved, 
  1163. making the rendering portions of a graphical program that uses OpenGL 
  1164. platform-independent. 
  1165.  
  1166. Because OpenGL imposes minimum structure on 3D rendering, it is an excellent 
  1167. base on which to build libraries for handling structured geometric objects, no 
  1168. matter what the particular structures may be. Examples of such libraries 
  1169. include object-oriented graphics toolkits that provide methods to display and 
  1170. manipulate complex objects endowed with a variety of attributes[11][12]. A 
  1171. library that uses OpenGL for its rendering inherits OpenGL's platform 
  1172. independence, making such a library available to a wide programming audience. 
  1173.  
  1174. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1175.  
  1176. segal@asd.sgi.com 
  1177. Fri Sep 23 16:08:14 PDT 1994 
  1178.  
  1179.  
  1180. ΓòÉΓòÉΓòÉ 9. About this document ... ΓòÉΓòÉΓòÉ
  1181.  
  1182. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1183.  
  1184.  
  1185. Up: The OpenGL Graphics Interface  Previous: References 
  1186.  
  1187. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1188.  
  1189.  
  1190.  
  1191.  About this document ... 
  1192.  
  1193.  This document was generated using the LaTeX2HTML translator Version 0.5.3 (Wed 
  1194. Jan 26 1994) Copyright ╨╣ 1993,  Nikos Drakos, Computer Based Learning Unit, 
  1195. University of Leeds. 
  1196.  
  1197.  The command line arguments were: 
  1198. latex2html -show_section_numbers opengl.tex. 
  1199.  
  1200. The translation was initiated by segal@asd.sgi.com on Fri Sep 23 16:08:14 PDT 
  1201. 1994 
  1202.  
  1203. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1204.  
  1205. segal@asd.sgi.com 
  1206. Fri Sep 23 16:08:14 PDT 1994 
  1207.  
  1208.  
  1209. ΓòÉΓòÉΓòÉ 10. References ΓòÉΓòÉΓòÉ
  1210.  
  1211. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1212.  
  1213.  
  1214.  Next:  About this document  Up: The OpenGL Graphics Interface  Previous: 7 
  1215. Conclusion 
  1216.  
  1217. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1218.  
  1219.  
  1220.  
  1221. References 
  1222.  
  1223.  1 
  1224.            Gerald Farin. Curves and Surfaces for Computer Aided Geometric 
  1225.            Design. Academic Press, Boston, Ma., second edition, 1990. 
  1226.  
  1227.  
  1228.  2 
  1229.            Paul Haeberli and Kurt Akeley. The accumulation buffer: Hardware 
  1230.            support for high-quality rendering. In Proceedings of SIGGRAPH '90, 
  1231.            pages 309-318, 1990. 
  1232.  
  1233.  
  1234.  3 
  1235.            Paul S. Heckbert. A survey of texture mapping. IEEE CG &A;, pages 
  1236.            56-67, November 1986. 
  1237.  
  1238.  
  1239.  4 
  1240.            Adobe Systems Incorporated. PostScript Language Reference Manual. 
  1241.            Addison-Wesley, Reading, Mass., 1986. 
  1242.  
  1243.  
  1244.  5 
  1245.            International Standards Organization. International standard 
  1246.            information processing systems - computer  graphics - graphical 
  1247.            kernel system for three dimensions (GKS-3D)  functional description. 
  1248.            Technical Report ISO Document Number 9905:1988(E), American National 
  1249.            Standards Institute, New York, 1988. 
  1250.  
  1251.  
  1252.  6 
  1253.            Jeff Stevenson. PEXlib specification and C language binding, version 
  1254.            5.1P. The X Resource, Special Issue B, September 1992. 
  1255.  
  1256.  
  1257.  7 
  1258.            Adrian Nye. X Window System User's Guide, volume 3 of The Definitive 
  1259.            Guides to the X Window System. O'Reilly and Associates, Sebastapol, 
  1260.            Ca., 1987. 
  1261.  
  1262.  
  1263.  8 
  1264.            Paula Womack, ed. PEX protocol specification and encoding, version 
  1265.            5.1P. The X Resource, Special Issue A, May 1992. 
  1266.  
  1267.  
  1268.  9 
  1269.            PHIGS+ Committee, Andries van Dam, chair. PHIGS+ functional 
  1270.            description, revision 3.0. Computer Graphics, 22(3):125-218, July 
  1271.            1988. 
  1272.  
  1273.  
  1274.  10 
  1275.            Mark Segal and Kurt Akeley. The OpenGL graphics system: A 
  1276.            specification. Technical report, Silicon Graphics Computer Systems, 
  1277.            Mountain View,  Ca., 1992. 
  1278.  
  1279.  
  1280.  11 
  1281.            Paul S. Strauss and Rikk Carey. An object-oriented 3D graphics 
  1282.            toolkit. In Proceedings of SIGGRAPH '92, pages 341-349, 1992. 
  1283.  
  1284.  
  1285.  12 
  1286.            Garry Wiegand and Bob Covey. HOOPS Reference Manual, Version 3.0. 
  1287.            Ithaca Software, 1991. 
  1288.  
  1289.   ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1290.  
  1291.  segal@asd.sgi.com 
  1292.  Fri Sep 23 16:08:14 PDT 1994 
  1293.  
  1294.  
  1295. ΓòÉΓòÉΓòÉ 11. External links ΓòÉΓòÉΓòÉ
  1296.  
  1297. This chapter contains all URLs referenced in this book. You should be connected 
  1298. to Internet now to display them properly. You also should have IBM Web Explorer 
  1299. installed and ready to run. 
  1300.  
  1301.  
  1302. ΓòÉΓòÉΓòÉ 11.1. http://cbl.leeds.ac.uk/nikos/personal.html ΓòÉΓòÉΓòÉ
  1303.  
  1304.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           The link you selected points to personal page of LaTeX2html converter`s author, Nikos Drakos.
  1305.                  Click the URL below to launch IBM Web Explorer
  1306.  
  1307.                    http://cbl.leeds.ac.uk/nikos/personal.html
  1308.  
  1309.  
  1310. ΓòÉΓòÉΓòÉ 11.2. http://cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/latex2html.html ΓòÉΓòÉΓòÉ
  1311.  
  1312.             The link you selected points to LaTeX2html tool homepage.
  1313.                  Click the URL below to launch IBM Web Explorer
  1314.  
  1315.       http://cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/latex2html.html
  1316.