Standard for exchange images
A graphics standard proposed for interactive Three Dimensional applications should assure different criteria. It should be introduced on platforms with changing graphics abilities without sacrificing the graphics quality of the primary hardware and without compromising control over the hardware’s function. It must offer a normal interface that permits a programmer to explain rendering processes quickly.
To end with, the interface should be flexible adequate to contain additions, hence that as new graphics operations become important, these operations can be given without sacrificing the original interface. OpenGL meets these measures by giving a simple interface to the basic operations of 3D graphics rendering. It supports basic graphics primitives, basic rendering operations and lighting calculations. It also helps advanced rendering attributes such as texture mapping.
1. Open Graphics Library
OpenGL draws primitives into a structured buffer focus to a various selectable modes. Every Point, line, polygon, or bitmap are called as a primitive. Each mode can be modified separately; the parameters of one do not affect the parameters of others. Modes defined, primitives detailed, and other OpenGL operations explained by giving commands in the form of procedure calls.
Fig.5.7. Schematic diagram of OpenGL
Figure 5.7 shows a schematic diagram of OpenGL. Commands go into OpenGL on the left. The majority commands may be collected in a ‘display list’for executing at a later time. If not, commands are successfully sent through a pipeline for processing.
The first stage gives an effective means for resembling curve and surface geometry by estimating polynomial functions of input data. The next stage works on geometric primitives explained by vertices. In this stage vertices are converted, and primitives are clipped to a seeing volume in creation for the next stage.
All ‘fragment’created is supplied to the next stage that executes processes on personal fragments before they lastly change the structural buffer. These operations contain restricted updates into the structural buffer based on incoming and formerly saved depth values, combination of incoming colors with stored colors, as well as covering and other logical operations on fragment values.
To end with, rectangle pixels and bitmaps by pass the vertex processing part of the pipeline to move a group of fragments in a straight line to the individual fragment actions, finally rooting a block of pixels to be written to the frame buffer. Values can also be read back from the frame buffer or duplicated from one part of the frame buffer to another. These transfers may contain several type of encoding or decoding.
2. Features of OpenGL
i) Based on IRIS GL
OpenGL is supported on Silicon Graphics’Integrated Rater Imaging System Graphics Library (IRIS GL). Though it would have been potential to have designed a totally new Application Programmer’sInterface (API), practice with IRIS GL offered insight into what programmers need and don’tneed in a Three Dimensional graphics API. Additional, creation of OpenGL similar to Integrated Rater Imaging System Graphics Library where feasible builds OpenGL most likely to be admitted; there are various successful IRIS GL applications, and programmers of IRIS GL will have a simple time switching to OpenGL.
A critical target of OpenGL is to offer device independence while still permitting total contact to hardware. Therefore the API gives permission to graphics operations at the lowest level that still gives device independence. Hence, OpenGL does not give a suggestion for modeling complex geometric objects.
iii) Fine-Grained Control
Due to minimize the needs on how an application utilizing the Application Programmer’s Interface must save and present its information, the API must give a suggestion to state entity parts of geometric entities and operations on them. This fine-grained control is necessary so that these mechanism and operations may be defined in any order and so that control of rendering operations is comfortable to contain the needs of various applications.
A modal Application Programmer’sInterface arises in executions in which processes function in parallel on different primitives. In that cases, a mode modify must be transmit to all processors so that all collects the new parameters before it processes its next primitive. A mode change is thus developed serially, stopping primitive processing until all processors have collected the modifications, and decreasing performance accordingly.
v) Frame buffer
Most of OpenGL needs that the graphics hardware has a frame buffer. This is a realistic condition since almost all interactive graphics run on systems with frame buffers. Some actions in OpenGL are attained only during exposing their execution using a frame buffer. While OpenGL may be applied to give data for driving such devices as vector displays, such use is minor.
vi) Not Programmable
OpenGL does not give a programming language. Its function may be organized by turning actions on or off or specifying factors to operations, but the rendering algorithms are basically fixed. One basis for this decision is that, for performance basis, graphics hardware is generally designed to apply particular operations in a defined order; changing these operations with random algorithms is generally infeasible. Programmability would variance with maintenance of the API close to the hardware and thus with the objective of maximum performance.
vii) Geometry and Images
OpenGL gives support for managing both 3D and 2D geometry. An Application Programmer’s Interface for utilize with geometry should also give guidance for reading, writing, and copying images, because geometry and images are regularly joint, as when a Three Dimensional view is laid over a background image. Various per-fragment processes that are applied to fragments beginning from geometric primitives apply uniformly well to fragments corresponding to pixels in an image, making it simple to mix images with geometry.