The objective of our project is to create a parallel rendering engine using OpenGL so that high resolution display and parallel speedup can be achieved with relatively lower overhead. Rendering is the process by which an abstract scene of an image is converted into an image. Parallel rendering divides the work to be done and divides it in parallel. Our project aims to create such a parallel rendering in OpenGL. The rendering project to be executed is given to the system which send it to the various systems connected in the network. Each system performs part of the rendering job and finally the partially rendered modules are then integrated to form the complete project. During the rendering the different systems must be connected to each other through a TCP/IP LAN network and must have the necessary prerequisites to perform the rendering job. OpenGL is a Graphics rendering API used for rendering 2D and 3D computer graphics across different platforms. It is also used to render points, lines, polygons, images, bitmaps etc.
OpenGL Hierarchy is as shown below
- GL - Lowest level for vertex, matrix manipulation
- GLU - Helper functions for shapes, transformations
- GLUT - Highest level for Window and interface management
Programmers need to specify following things about camera
- Location and parameters of camera.
- Geometry and appearance
- Lights which is optional
In some implementations, OpenGL is designed to work even if the computer that displays the 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 where many computers are connected to one another by a digital network. In this situation, the computer on which your program runs and issues OpenGL drawing commands is called the client, and the computer that receives those commands and performs the drawing is called the server. The format for transmitting OpenGL commands from the client to the server is always the same, so OpenGL programs can work across a network even if the client and server are different kinds of computers. If an OpenGL program isn’t running across a network, then there’s only one computer, and it is both the client and the server.
The final rendered image consists of pixels drawn on the screen; a pixel is the smallest visible element the display hardware can put on the screen. Information about the pixels is organized in memory into bit planes. A bit plane is an area of memory that holds one bit of information for every pixel on the screen; the bit might indicate how red a particular pixel is supposed to be, for example. The bit planes are themselves organized into a frame buffer, which holds all the information that the graphics display needs to control the color and intensity of all the pixels on the screen