API
The game engine uses software known as an application programming interface or API, which is a set of routines, protocols, and tools for building software applications. A good API makes it easier to develop a program by providing all the building blocks. A programmer then puts the blocks together.
Most operating environments, such as MS-Windows, provide an API so that programmers can write applications consistent with the operating environment. Although APIs are designed for programmers, they are ultimately good for users because they guarantee that all programs using a common API will have similar interfaces. This makes it easier for users to learn new programs.
Prior to 3D APIs, any company developing a graphical application typically had to rewrite the graphics part of it for each operating system platform and it had to be recognised by the graphics hardware as well.
Prior to 3D APIs, any company developing a graphical application typically had to rewrite the graphics part of it for each operating system platform and it had to be recognised by the graphics hardware as well.
Direct3D
An API for manipulating and displaying three-dimensional objects. Developed by Microsoft, Direct3D provides programmers with a way to develop 3-D programs that can utilize whatever graphics acceleration device is installed in the machine. Virtually all 3-D accelerator cards for PCs support Direct3D.
OpenGL
A 3-D graphics language developed by Silicon Graphics. There are two main implementations: Microsoft OpenGL, developed by Microsoft and Cosmo OpenGL, developed by Silicon Graphics. Microsoft OpenGL is built into Windows NT and is designed to improve performance on hardware that supports the OpenGL standard. Cosmo OpenGL, on the other hand, is a software-only implementation specifically designed for machines that do not have a graphics accelerator.
Graphics Pipeline
In 3D computer graphics, the terms graphics pipeline or rendering pipeline most commonly refer tothe way in which the 3D mathematical information contained within the objects and scenes are converted into images and video. The graphics pipeline typically accepts some representation of a three-dimensional primitive as input and results in a 2D raster image as output. OpenGL and Direct3D are two notable 3d graphic standards, both describing very similar graphic pipelines.
Stages of the Graphics Pipeline
3D Geometric Primitives
First, the scene is created out of geometric primitives. Traditionally this is done using triangles, which are particularly well suited to this as they always exist on a single plane.
Modelling and Transformation
Transform from the local coordinate system to the 3d world coordinate system. A model of a teapot in abstract is placed in the coordinate system of the 3d world.
Camera Transformation
Transform the 3d world coordinate system into the 3d camera coordinate system, with the camera as the origin.Lighting
Illuminate according to lighting and reflectance. If the teapot is a brilliant white color, but in a totally black room, then the camera sees it as black. In this step the effect of lighting and reflections are calculated.
Projection Transformation
Transform the 3d world coordinates into the 2d view of the camera, for instance the object the camera is centered on would be in the center of the 2d view of the camera. In the case of a Perspective projection, objects which are distant from the camera are made smaller. This is achieved by dividing the X and Y coordinates of each vertex of each primitive by its Z coordinate (which represents its distance from the camera). In an orthographic projection, objects retain their original size regardless of distance from the camera.
Clipping
Geometric primitives that now fall completely outside of the viewing frustum will not be visible and are discarded at this stage.
Scan Conversion or Rasterization
Rasterization is the process by which the 2D image space representation of the scene is converted into raster format and the correct resulting pixel values are determined. From now on, operations will be carried out on each single pixel. This stage is rather complex, involving multiple steps often referred as a group under the name of pixel pipeline.
Texturing, Fragment Shading
At this stage of the pipeline individual fragments (or pre-pixels) are assigned a colour based on values interpolated from the vertices during rasterization, from a texture in memory, or from a shader program.
Geometric primitives that now fall completely outside of the viewing frustum will not be visible and are discarded at this stage.
Scan Conversion or Rasterization
Rasterization is the process by which the 2D image space representation of the scene is converted into raster format and the correct resulting pixel values are determined. From now on, operations will be carried out on each single pixel. This stage is rather complex, involving multiple steps often referred as a group under the name of pixel pipeline.
Texturing, Fragment Shading
At this stage of the pipeline individual fragments (or pre-pixels) are assigned a colour based on values interpolated from the vertices during rasterization, from a texture in memory, or from a shader program.
Display
The final colored pixels can then be displayed on a computer monitor or other display
No comments:
Post a Comment