Скачиваний:
47
Добавлен:
17.03.2015
Размер:
2.46 Mб
Скачать

Appendix F

Version 1.3

OpenGL version 1.3, released on August 14, 2001, is the third revision since the original version 1.0. Version 1.3 is upward compatible with earlier versions, meaning that any program that runs with a 1.2, 1.1, or 1.0 GL implementation will also run unchanged with a 1.3 GL implementation.

Several additions were made to the GL, especially texture mapping capabilities previously defined by ARB extensions. Following are brief descriptions of each addition.

F.1 Compressed Textures

Compressing texture images can reduce texture memory utilization and improve performance when rendering textured primitives. The GL provides a framework upon which extensions providing specific compressed image formats can be built, and a set of generic compressed internal formats that allow applications to specify that texture images should be stored in compressed form without needing to code for specific compression formats (specific compressed formats, such as S3TC or

FXT1, are supported by extensions).

 

 

 

 

Texture

compression

was

promoted

from

the

GL ARB texture compression extension.

 

 

 

F.2 Cube Map Textures

Cube map textures provide a new texture generation scheme for looking up textures from a set of six two-dimensional images representing the faces of a cube. The (str) texture coordinates are treated as a direction vector emanating from the center of a cube. At texture generation time, the interpolated per-fragment (str) selects

320

F.3. MULTISAMPLE

321

one cube face two-dimensional image based on the largest magnitude coordinate (the major axis). A new (st) is calculated by dividing the two other coordinates (the minor axes values) by the major axis value, and the new (st) is used to lookup into the selected two-dimensional texture image face of the cube map.

Two new texture coordinate generation modes are provided for use in conjunction with cube map texturing. The REFLECTION MAP mode generates texture coordinates (str) matching the vertex’s eye-space reflection vector, useful for environment mapping without the singularity inherent in SPHERE MAP mapping. The NORMAL MAP mode generates texture coordinates matching the vertex’s transformed eye-space normal, useful for texture-based diffuse lighting models.

Cube mapping was promoted from the GL ARB texture cube map extension.

F.3 Multisample

Multisampling provides a antialiasing mechanism which samples all primitives multiple times at each pixel. The color sample values are resolved to a single, displayable color each time a pixel is updated, so antialiasing appears to be automatic at the application level. Because each sample includes depth and stencil information, the depth and stencil functions perform equivalently to the single-sample mode.

When multisampling is supported, an additional buffer, called the multisample buffer, is added to the framebuffer. Pixel sample values, including color, depth, and stencil values, are stored in this buffer.

Multisampling is usually an expensive operation, so it is usually not supported on all contexts. Applications must obtain a multisample-capable context using the new interfaces provided by GLX 1.4 or by the WGL ARB multisample extension.

Multisampling was promoted from the GL ARB multisample extension; The definition of the extension was changed slightly to support both multisampling and supersampling implementations.

F.4 Multitexture

Multitexture adds support for multiple texture units. The capabilities of the multiple texture units are identical, except that evaluation and feedback are supported only for texture unit 0. Each texture unit has its own state vector which includes texture vertex array specification, texture image and filtering parameters, and texture environment application.

The texture environments of the texture units are applied in a pipelined fashion whereby the output of one texture environment is used as the input fragment color

Version 2.0 - October 22, 2004

F.5. TEXTURE ADD ENVIRONMENT MODE

322

for the next texture environment. Changes to texture client state and texture server state are each routed through one of two selectors which control which instance of texture state is affected.

Multitexture was promoted from the GL ARB multitexture extension.

F.5 Texture Add Environment Mode

The TEXTURE ENV MODE texture environment function ADD provides a texture function to add incoming fragment and texture source colors.

Texture add mode was promoted from the GL ARB texture env add extension.

F.6 Texture Combine Environment Mode

The TEXTURE ENV MODE texture environment function COMBINE provides a wide range of programmable combiner functions using the incoming fragment color, texture source color, texture constant color, and the result of the previous texture environment stage as possible parameters.

Combiner operations include passthrough, multiplication, addition and biased addition, subtraction, and linear interpolation of specified parameters. Different combiner operations may be selected for RGB and A components, and the final result may be scaled by 1, 2, or 4.

Texture combine was promoted from the GL ARB texture env combine extension.

F.7 Texture Dot3 Environment Mode

The TEXTURE ENV MODE COMBINE operations also provide three-component dot products of specified parameters, with the resulting scalar value replicated into the RGB or RGBA components of the output color. The dot product is performed using pseudo-signed arithmetic to enable per-pixel lighting computations.

Texture DOT3 mode was promoted from the GL ARB texture env dot3 extension.

F.8 Texture Border Clamp

The texture wrap parameter CLAMP TO BORDER mode clamps texture coordinates at all mipmap levels such that when the texture filter straddles an edge of the texture

Version 2.0 - October 22, 2004

F.9. TRANSPOSE MATRIX

323

image, the color returned is derived only from border texels. This behavior mirrors the behavior of the texture edge clamp mode introduced by OpenGL 1.2.

Texture border clamp was promoted from the

GL ARB texture border clamp extension.

F.9 Transpose Matrix

New functions and tokens are added allowing application matrices stored in row major order rather than column major order to be transferred to the implementation. This allows an application to use standard C-language 2-dimensional arrays and have the array indices match the expected matrix row and column indexes. These arrays are referred to as transpose matrices since they are the transpose of the standard matrices passed to OpenGL.

Transpose matrix adds an interface for transfering data to and from the OpenGL pipeline. It does not change any OpenGL processing or imply any changes in state representation.

Transpose matrix was promoted from the GL ARB transpose matrix extension.

F.10 Acknowledgements

OpenGL 1.3 is the result of the contributions of many people. Following is a partial list of the contributors, including the company that they represented at the time of their contribution:

Adrian Muntianu, ATI Al Reyes, 3dfx

Alain Bouchard, Matrox Alan Commike, SGI Alan Heirich, Compaq Alex Herrera, SP3D Allen Akin, VA Linux Allen Gallotta, ATI

Alligator Descartes, Arcane Andy Vesper, MERL

Andy Wolf, Diamond Multimedia Axel Schildan, S3

Barthold Lichtenbelt, 3Dlabs Benj Lipchak, Compaq

Bill Armstrong, Evans & Sutherland

Version 2.0 - October 22, 2004

F.10. ACKNOWLEDGEMENTS

324

Bill Clifford, Intel

Bill Mannel, SGI Bimal Poddar, Intel Bob Beretta, Apple Brent Insko, NVIDIA Brian Goldiez, UCF

Brian Greenstone, Apple Brian Paul, VA Linux Brian Sharp, GLSetup Bruce D’Amora, IBM Bruce Stockwell, Compaq Chris Brady, Alt.software Chris Frazier, Raycer Chris Hall, 3dlabs

Chris Hecker, GLSetup Chris Lane, Intel

Chris Thornborrow, PixelFusion Christopher Fraser, IMG

Chuck Smith, Intelligraphics Craig Dunwoody, SGI Dairsie Latimer, PixelFusion

Dale Kirkland, 3Dlabs / Intergraph Dan Brokenshire, IBM

Dan Ginsburg, ATI Dan McCabe, S3

Dave Aronson, Microsoft Dave Gosselin, ATI Dave Shreiner, SGI Dave Zenz, Dell

David Aronson, Microsoft David Blythe, SGI

David Kirk, NVIDIA David Story, SGI David Yu, SGI Deanna Hohn, 3dfx

Dick Coulter, Silicon Magic Don Mullis, 3dfx

Eamon O Dea, PixelFusion Edward (Chip) Hill, Pixelfusion Eiji Obata, NEC

Version 2.0 - October 22, 2004

F.10. ACKNOWLEDGEMENTS

325

Elio Del Giudice, Matrox Eric Young, S3

Evan Hart, ATI Fred Fisher, 3dLabs

Garry Paxinos, Metro Link Gary Tarolli, 3dfx

George Kyriazis, NVIDIA Graham Connor, IMG Herb Kuta, Quantum3D Howard Miller, Apple Igor Sinyak, Intel

Jack Middleton, Sun James Bowman, 3dfx

Jan C. Hardenbergh, MERL Jason Mitchell, ATI

Jeff Weyman, ATI Jeffrey Newquist, 3dfx

Jens Owen, Precision Insight Jeremy Morris, 3Dlabs

Jim Bushnell, Pyramid Peak John Dennis, Sharp Eye John Metcalfe, IMG

John Stauffer, Apple John Tynan, PixelFusion John W. Polick, NEC Jon Khazam, Intel

Jon Leech, SGI

Jon Paul Schelter, Matrox Karl Hilleslad, NVIDIA Kelvin Thompson

Ken Cameron, Pixelfusion Ken Dyke, Apple

Ken Nicholson, SGI Kent Lin, Intel Kevin Lefebvre, HP

Kevin Martin, VA Linux Kurt Akeley, SGI

Les Silvern, NEC

Mahesh Dandipani, Rendition Mark Kilgard, NVIDIA

Version 2.0 - October 22, 2004

F.10. ACKNOWLEDGEMENTS

326

Martin Amon, 3dfx Martina Sourada, ATI Matt Lavoie, Pixelfusion Matt Russo, Matrox

Matthew Papakipos, NVIDIA Michael Gold, NVIDIA Miriam Geller, SGI

Morgan Von Essen, Metro Link Naruki Aruga, PFU

Nathan Tuck, Raycer Graphics Neil Trevett, 3Dlabs

Newton Cheung, S3 Nick Triantos, NVIDIA Patrick Brown, Intel Paul Jensen, 3dfx

Paul Keller, NVIDIA Paul Martz, HP Paula Womack, 3dfx

Peter Doenges, Evans & Sutherland Peter Graffagnino, Apple

Phil Huxley, 3Dlabs Ralf Biermann, Elsa AG Randi Rost, 3Dlabs Renee Rashid, Micron Rich Johnson, HP Richard Pimentel, PTC Richard Schlein, Apple Rick Hammerstone, ATI Rik Faith, VA Linux Rob Glidden, Sun

Rob Wheeler, 3dfx

Shari Petersen, Rendition Shawn Hopwood, SGI

Steve Glickman, Silicon Magic Steve McGuigan, SGI

Steve Wright, Microsoft Stuart Anderson, Metro Link T. C. Zhao, MERL

Teri Morrison, HP

Thomas Fox, IBM

Version 2.0 - October 22, 2004

F.10. ACKNOWLEDGEMENTS

327

Tim Kelley, Real 3D

Tom Frisinger, ATI

Victor Vedovato, Micron

Vikram Simha, MERL

Yanjun Zhang, Sun

Zahid Hussain, TI

Version 2.0 - October 22, 2004

Соседние файлы в папке OpenGL