Path: nntp.hut.fi!news.funet.fi!sunic!EU.net!howland.reston.ans.net!cs.utexas.edu!swrinde!sgiblab!sgigate.sgi.com!fido.asd.sgi.com!kicksave.asd.sgi.com!woo From: woo@kicksave.asd.sgi.com (Mason Woo) Newsgroups: comp.graphics.opengl,comp.answers,news.answers Subject: comp.graphics.opengl Frequently Asked Questions (FAQ) [1/1] Followup-To: poster Date: 30 Nov 1993 17:52:20 GMT Organization: Silicon Graphics Inc., Mountain View, CA Lines: 419 Approved: news-answers-request@MIT.Edu Distribution: world Expires: 31 December 1993 00:00:00 GMT Message-ID: <2dg18k$p33@fido.asd.sgi.com> Reply-To: woo@kicksave.asd.sgi.com NNTP-Posting-Host: kicksave.asd.sgi.com Summary: This contains a list of Frequently Asked Questions about OpenGL (TM) Keywords: FAQ Xref: nntp.hut.fi comp.graphics.opengl:944 comp.answers:2819 news.answers:14778 Archive-name: graphics/opengl-faq Last-modified: 1993/11/30 Version: 1.10 * marks recently modified answers or new questions Q1: What is OpenGL? Q2: What is the relationship between IRIS GL and OpenGL? Q3: What does the .gl or .GL file format have to do with OpenGL? * Q4: Which vendors are supporting OpenGL? Q5: When will OpenGL implementations be available? * Q6: What documentation is available for OpenGL? Where is a written version of the OpenGL specification? Where is the source code which accompanies that documentation? Q7: Why doesn't SGI provide a free implementation of OpenGL? Q8: What are the conformance tests? Q9: How do I contribute OpenGL code examples to a publicly accessible archive? Q10: Will OpenGL code be source code or binary code compatible with IRIS GL code? Q11: Why should I port my IRIS GL application to OpenGL? Q12: How much work is it to convert an IRIS GL program to OpenGL? What are the major differences between them? Q13: How does a university or research institution acquire access to OpenGL source code? Q14: How is a commercial license acquired? Q15: How is the OpenGL governed? Who decides what changes can be made? Q16: Who are the current ARB members? Q17: What is the philosophy behind the structure of the ARB? * Q18: How does the OpenGL ARB operate logistically? When does the ARB have meetings? Q19: How do additional members join the OpenGL ARB? Q20: So if I'm not a member of the ARB, am I shut out of the decision making process? * Q21: What is the OpenGL Advisory Forum? Q22: Are ARB meetings open to observers? ------ Subject: Q1: What is OpenGL? A: OpenGL is the software interface for graphics hardware that allows graphics programmers to produce high-quality color images of 3D objects. OpenGL is a rendering only, vendor neutral API providing 2D and 3D graphics functions, including modelling, transformations, color, lighting, smooth shading, as well as advanced features like texture mapping, NURBS, fog, alpha blending and motion blur. OpenGL works in both immediate and retained (display list) graphics modes. OpenGL is window system and operating system independent. OpenGL has been integrated with Windows NT and with the X Window System under UNIX. Also, OpenGL is network transparent. A defined common extension to the X Window System allows an OpenGL client on one vendor's platform to run across a network to another vendor's OpenGL server. ------ Subject: Q2: What is the relationship between IRIS GL and OpenGL? A: IRIS GL is the predecessor to OpenGL. After other implementors had experience trying to port the IRIS GL to their own machines, it was learned that the IRIS GL was too tied to a specific window system or hardware. Based upon consultations with several implementors, OpenGL is much more platform independent. IRIS GL is being maintained and bugs will be fixed, but SGI will no longer add enhancements. OpenGL is now the strategic interface for 3-D computer graphics. ------ Subject: Q3: What does the .gl or .GL file format have to do with OpenGL? .gl files have nothing to do with OpenGL. It's a file format for images, which has no relationship to IRIS GL or OpenGL. ------ Subject: Q4: Which vendors are supporting OpenGL? A: OpenGL is supported by SGI and many other hardware vendors. As of August, 1993, OpenGL has been licensed to DEC, IBM, Intel, Microsoft, Portable Graphics (formerly Nth Portable Graphics; supporting Sun and HP), Du Pont Pixel Systems (supporting Sun and a Du Pont Pixel graphics accelerator board), Evans & Sutherland, Kubota Pacific, Sony, NEC, Hitachi, Daikin, Intergraph, miro, Media Vision, RasterOps, Samsung, SPEA, USL, Harris Computer, and Kendall Square Research. The machines supported by OpenGL licensees constitute over 95% of the graphics workstation marketplace, as well as the majority of the PC market. ------ Subject: Q5: When will OpenGL implementations be available? A: On SGI machines, OpenGL is available on both Onyx and Indy. Availability on at Indigo, Indigo 2, Crimson, and other SGI workstations will be part of the next release of IRIX to upgrade all products to 5.x. Digital Equipment has shipped its first OpenGL product as part of the Open3D 2.0 layered product for Alpha AXP OSF/1. The server support in this release is only for the PXG graphics adaptor, but the client libraries are of course universal if thats all you need. For information on ordering the Open3D 2.0 product from Digital contact your Digital sales representative. SGI does not speak for any other company. However, this space is available for any company who wishes to state status reports or release dates for their OpenGL implementation. Please send e-mail to woo@sgi.com to add to this section. ------ Subject: Q6: What documentation is available for OpenGL? Where is a written version of the OpenGL specification? Where is the source code which accompanies that documentation? A: A 2 volume set, The OpenGL Technical Library, is being published by Addison-Wesley. The OpenGL Reference Manual is ISBN 0-201-63276-4. The OpenGL Programming Guide is ISBN 0-201-63274-8. You can purchase the books in extremely large volume by calling Robert Shepard of Addison-Wesley (617) 944-3700 ext 2435. The man pages are also available via anonymous, public ftp. On the machine sgi.com, the directory with man pages for OpenGL, its Utility Library (glu), and the X server extension API (glx) is ~ftp/OpenGL/doc. If you have access to ftp, you can get the source code examples which are found in the OpenGL Programming Guide via anonymous, public ftp on another machine: sgigate.sgi.com in the file ~ftp/pub/opengl/opengl.tar.Z A PostScript version of the OpenGL specification is available via ftp. The spec is available for anonymous ftp on sgigate.sgi.com:~ftp/pub/opengl/doc/Spec.tar.Z The spec is contained in directory with several files which have been tar'd and compressed. The OpenGL, OpenGL Utility Library, X extensions (glx) specifications are all here. Please read the README file in the directory, which explains the copyright and trademark rules for usage of the specification. Possession of the OpenGL Specification does not grant the right to reproduce, create derivative works based on or distribute or manufacture, use or sell anything that embodies the specification without an OpenGL license from SGI. ------ Subject: Q7: Why doesn't SGI provide a free implementation of OpenGL? A: The intent of licensing is to enhance conformity and portability of applications code. In the days before OpenGL, IRIS GL was supported differently and enhanced differently for each machine on which it was implemented. This included machines from IBM, HP, Sun, as well as SGI. Applications developers found this to be a nightmare, and convinced SGI that OpenGL implementations needed to be more consistent. This led us to develop specifications and conformance tests, and to seek some way to ensure that OpenGL implementors would honor them. There are only a few legal mechanisms that can be used for this purpose, and licensing is one of the most effective and widely accepted. SGI thinks the lack of a public-domain implementation is a trade-off for a guarantee of consistent OpenGL implementations from many different vendors, and that in the long run this is the best interests of application developers, who seek ease of portability, and end-users, who seek to be able to choose among hardware vendors for their chosen software solution. Licensing money goes to creating conformance tests to control variants and subsets, maintaining the specification and sample implementation. Because of the overhead of having the dozen or so engineers working on OpenGL at SGI, SGI is not making money from the OpenGL effort. Licensing is one way to help offset those costs. ------ Subject: Q8: What are the conformance tests? A: The conformance tests are a suite of programs which judge the success of an OpenGL implementation. Each implementor is required to run these tests and pass them in order to call their implementation with the trademark OpenGL. Passing the conformance tests ensures source code compatibility of applications across all OpenGL implementations. ------ Subject: Q9: How do I contribute OpenGL code examples to a publicly accessible archive? A: To contribute to the public OpenGL archive, send mail to opengl-contrib@sgi.com. Your mail should contain: The material to be archived, or instructions for obtaining it. An announcement suitable for posting to comp.graphics.opengl. SGI will place the material in the OpenGL/contrib directory on sgi.com and post the announcement to this newsgroup. To retrieve something from the archive, use anonymous ftp to sgi.com. Once connected, cd to the directory OpenGL. (Case is significant.) Currently there are two subdirectories: doc Manual pages for OpenGL and related libraries. contrib Contributions from the public. Note that all contributions are distributed as-is; neither SGI nor the other companies on the OpenGL Architecture Review Board make any legally valid claims about the robustness or usefulness of this software. If you do not have access to anonymous ftp, consider using an "ftp-by-mail" server. For information on one such server, send mail to ftpmail@decwrl.dec.com with a message body containing only the word "help". ------ Subject: Q10: Will OpenGL code be source code or binary code compatible with IRIS GL code? A: OpenGL code is neither binary nor source code compatible with IRIS GL code. It was decided to bite the bullet at this time to make OpenGL incompatible with IRIS GL and fix EVERYTHING that made IRIS GL difficult to port or use. For example, the gl prefix has been added to every command: glVertex(), glColor(), etc. ------ Subject: Q11: Why should I port my IRIS GL application to OpenGL? SGI will be maintaining the old IRIS GL, but not enhancing it. OpenGL is the API of choice on all new SGI machines. OpenGL has no subsets. You can use the same functionality on all machines from SGI or from other vendors. OpenGL is better integrated with the X Window System than the old IRIS GL. For example, you can mix OpenGL and X or Display PostScript drawing operations in the same window. The OpenGL naming scheme, argument list conventions, and rendering semantics are cleaner than those of IRIS GL. This should make OpenGL code easier to understand and maintain. ------ Subject: Q12: How much work is it to convert an IRIS GL program to OpenGL? What are the major differences between them? There is a fair amount of work, most of which is in substituting for window management or input handling routines, for which the equivalents are not OpenGL, but the local window system, such as the X Windows System or Windows NT. And all routine names have changed, at least, minimally; for example: ortho() is now glOrtho(). To help ease the way, port to "mixed model" right away, mixing the X Window System calls to open and manage windows, cursors, and color maps and read events of the window system, mouse and keyboard. You can do that now with IRIS GL, if you are running IRIX 4.0. In the X Window System, display mode choices (such as single or double buffering, color index or RGBA mode) must be declared before the window is initially opened. You may also substitute for other IRIS GL routines, such as using a OSF/Motif menu system, in place of the IRIS GL pop-up menus. You should use glXUseXFont(), whenever you were using the font manager with IRIS GL. Tables for states such as lighting or line and polygon stipples will be gone. Instead of using a def/set or def/bind sequence to load a table, you turn on the state with glEnable() and also declare the current values for that state. Colors are best stored as floating point values, scaled from 0.0 to 1.0 (0% to 100%). Alpha is fully integrated in the RGBA mode and at least source alpha will be available on all OpenGL implementations. OpenGL will not arbitrarily limit the number of bits per color to 8. Clearing the contents of buffers no longer uses the current color, but a special "clearing" color for each buffer (color, depth, stencil, and accumulation). The transformation matrix has changed. In OpenGL, there is no single matrix mode. Matrices are now column-major and are post-multiplied, although that does NOT change the calling order of these routines from IRIS GL to OpenGL. OpenGL's glRotate*() now allows for a rotation around an arbitrary axis, not just the x, y, and z axes. lookat() of IRIS GL is now gluLookAt(), which takes an up vector value, not merely a twist. There is no polarview() in OpenGL, but a series of glRotate*()s and glTranslate*()s can do the same thing. There are no separate depth cueing routines in OpenGL. Use linear fog. Feedback and selection (picking) return values, which are different from those found on any IRIS GL implementation. For selection and picking, depth values will be returned for each hit. In OpenGL, feedback and selection will now be standardized on all hardware platforms. ------ Subject: Q13: How does a university or research institution acquire access to OpenGL source code? A: There is a university/research institution licensing program. A university license entitles the institution to generate binaries and copy them anywhere, so long as nothing leaves the institution. The OpenGL source and derived binaries can only be used for non-commercial purposes on-campus. A university license costs $500 and can be obtained by contacting woo@sgi.com. ------ Subject: Q14: How is a commercial license acquired? A: Call Mason Woo at (415) 390-4205 or e-mail him at woo@sgi.com. There are licenses available restricted to site (local) usage, or permitting redistribution of binary code. The limited source license provides a sample implementation of OpenGL for $50,000. The license for commerical redistribution of OpenGL binaries has two most commonly chosen levels. Level 1 costs $25,000. Level 2 costs $100,000, and includes the sample implementation of OpenGL. Both levels require a $5 royalty for every copy of the OpenGL binary, which is redistributed. Since many implementations will be a shared library on a hardware platform, the royalty sometimes will be charged for each hardware platform, not each application which uses OpenGL. ------ Subject: Q15: How is the OpenGL governed? Who decides what changes can be made? A: OpenGL is controlled by an independent board, the Architectural Review Board (ARB). Each member of the ARB has one vote. The founding members of the ARB are DEC, IBM, Intel, Microsoft, and SGI. Additional members will be added over time. The ARB governs the future of OpenGL, proposing and approving changes to the specification, new releases, and conformance testing. ------ Subject: Q16: Who are the current ARB members? A: In alphabetical order: Digital Equipment, IBM, Intel, Microsoft, and Silicon Graphics. ------ Subject: Q17: What is the philosophy behind the structure of the ARB? A: The ARB is intended to be able to respond quickly and flexibly to evolutionary changes in computer graphics technology. The ARB is currently "lean and mean" to encourage speedy communication and decision-making. Its members are highly motivated in ensuring the success of OpenGL. ------ Subject: Q18: How does the OpenGL ARB operate logistically? When does the ARB have meetings? A: ARB meetings are held about once a quarter. The meetings rotate among sites hosted by the ARB members. The next ARB meeting will be held the week of December 9th and 10th in Austin, Texas at the Embassy Suites/Airport. This meeting will be hosted by IBM. There will also be a day or two of interoperability testing as part of the next ARB meeting, and licensees are invited to test the interoperability of their OpenGL implementations. Meetings are run by a set of by-laws, which are currently being approved. When they are approved, the by-laws will be publicly available for inspection. ------ Subject: Q19: How do additional members join the OpenGL ARB? A: The intention is that additional members may be added on a permanent basis or for a one-year term. The one-year term members would be voting members, added on a rotating basis, so that different viewpoints (such as ISV's) could be incorporated into new releases. Under the currently proposed (but not yet ratified) by-laws, SGI formally nominates new members. ------ Subject: Q20: So if I'm not a member of the ARB, am I shut out of the decision making process? A: There are many methods by which you can influence the evolution of OpenGL. 1) Contribute to the comp.graphics.opengl news group. Most members of the ARB read the news group religiously. 2) Contact any member of the ARB and convince that member that your proposal is worth their advocacy. Any ARB member may present a proposal, and all ARB members have equal say. 3) Come to OpenGL Advisory Forum and speak directly to ARB in person. ------ Subject: Q21: What is the OpenGL Advisory Forum? A: Preceding every ARB meeting will be a meeting of the OpenGL Advisory Forum. Members of the ARB will attend this meeting to listen to proposals and discussions. If you want to attend, you want to notify the Secretary of the ARB. Until a more generic mail alias is set up for the Secretary, you can just send mail to woo@sgi.com The Advisory Forum is intended to start as an informal, self-governing group of people, highly interested in OpenGL. The ARB will invite a representative of the Advisory Forum to attend the ARB meetings, in a non-voting capacity. Advisory Forum members can be candidates for both short-term and permanent membership in the ARB. The Advisory Forum is encouraged to formulate its own structure and rules and move into any direction it wants. Corporations, universities, or individuals can be members of the Advisory Forum. The next OpenGL Advisory Forum meeting is Wednesday, December 8th, from 1 to 5 PM, hosted by IBM in Austin, Texas (same place as the ARB meeting). ------ Subject: Q22: Are ARB meetings open to observers? A: The ARB meeting will be open to observers, but we want to keep the meeting small. For the next meeting in Austin, Texas, the ARB will allow the Advisory Forum to nominate five representatives of the Advisory Forum to attend the ARB meeting, in a non-voting capacity. After the meeting in Austin, the ARB will once again re-evaluate the number of observers, based upon the success of this experiment.