OpenGL is a software interface to graphics hardware.This interface consists of about 150 distinct commands that you use to specifythe objects and operations needed to produce interactive three-dimensionalapplications. OpenGL is designed as a streamlined, hardware-independentinterface to be implemented on many different hardware platforms. To achievethese qualities, no commands for performing windowing tasks or obtaining userinput are included in OpenGL; instead, you must work through whatever windowingsystem controls the particular hardware you're using. Similarly, OpenGL doesn'tprovide high-level commands for describing models of three-dimensional objects.Such commands might allow you to specify relatively complicated shapes such asautomobiles, parts of the body, airplanes, or molecules. With OpenGL, you must build up your desiredmodel from a small set of geometricprimitives - points, lines, and polygons. A sophisticated library that provides thesefeatures could certainly be built on top of OpenGL. The OpenGL Utility Library(GLU) provides many of the modeling features, such as quadric surfaces andNURBS curves and surfaces. GLU is a standard part of every OpenGLimplementation. Also, there is a higher-level, object-oriented toolkit, OpenInventor, which is built atop OpenGL, and is available separately for manyimplementations of OpenGL. OpenGL is available on many differentplatforms and works with many different window systems. OpenGL is designed tocomplement window systems, not duplicate their functionality. Therefore, OpenGLperforms geometric and image rendering in two and three dimensions, but it doesnot manage windows or handle input events.
However, the basic definitions ofmost window systems don't support a library as sophisticated as OpenGL, withits complex and diverse pixel formats, including depth, stencil, andaccumulation buffers, as well as double-buffering. For most window systems,some routines are added to extend the window system to support OpenGL. In some implementations (such as with the XWindow System), OpenGL is designed to work even if the computer that displaysthe graphics you create isn't the computer that runs your graphics program.This might be the case if you work in a networked computer environment wheremany computers are connected to one another by a digital network. In thissituation, the computer on which your program runs and issues OpenGL drawingcommands is called the client, and the computer that receives those commandsand performs the drawing is called the server. The format for transmittingOpenGL commands (called the protocol)from the client to the server is always the same, so OpenGL programs can workacross a network even if the client and server are different kinds ofcomputers. I am trying to unleash the OpenGL technology which is mostly used inthe field of game development and animation.