Monday, 20 January 2014

HA4 Task 2 - Displaying 3D Polygon Animations

How are 3D models displayed? Describe and explain what an API and a Graphics pipeline are.


Remember that you are trying to comprehensively explain the theory and applications of 3D with elucidated examples and consistently using subject terminology correctly.
______________________________________________________________________


API

API, application program interface, is a set of routinesprotocols, and tools for building software applications. The API specifies how software components should interact and are used used when programming graphical user interface (GUI) components.  A good API makes it easier to develop a program by providing all the building blocks. A programmer then puts the blocks together.



Direct 3D

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.


Open GL


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

Graphics pipeline refers to the sequence of steps used to create a 2D raster representation of a 3D scene. Plainly speaking, once you have created a 3D model, for instance, in a video game, or any other 3d computer animation, the graphics pipeline is the process of turning that 3D model into what the computer displays. 


In the early history of 3D computer graphics fixed purpose hardware was used to speed up the steps of the pipeline, but the hardware evolved, becoming more general purpose, allowing greater flexibility in graphics rendering, as well as more generalized hardware, allowing the same generalized hardware to perform not only different steps of the pipeline, unlike fixed purpose hardware, but even limited forms of general purpose computing. As the hardware evolved, so did the graphics pipelines, the OpenGL, and DirectX pipelines, but the general concept of the pipeline remains the same.

Stages in Graphics Pipeline

3D Geometric Primitives - 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.


Project Transformation - Transform the 3d world coordinates into the 2d view of the camera, for example, 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 - The 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.


No comments:

Post a Comment