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.

__________________________________________________________________

How are 3D models displayed?

3D animations and general projects work in terms of 'polygons', polygons are made out of smaller triangles which join together in segments and create the model itself, it is then displayed to a monitor, the joined together polygons are not visible as individual units to the viewer but instead are viewed as a finished model. The program uses polygons because polygons are so called 'planes', the computer is only able to compute and display formations that are 'planes' i.e. that are flat from whatever side you take it up upon. This allows the computer to read the information properly, for example, several polygons create a rounded shapes, but since each polygon is a 'plane' a computer can still read them, if the shape was made for example, out of squares, the computer wouldn't be able to read it since it is not considered a 'plane'.

API:

API stands for Application Programming Interface. It is basically lines of code that specify how specific software should behave when being used with another software or when being used on its own. API is able to access databases or hardware pieces such as hard drives and video cards and tweak them to work with certain things. But in most cases the API is used for one main thing, API as the name suggests is an 'interface for programming' this means that it helps to program something when there is an API support for that particular program. It might help out in many certain ways, for example, in might be easier to create something graphical with an API, program a mechanic of a game easier or search through a library faster. An API might also do other things such as specifications for routines, data structures, object classes and other variables which will further help to ease the programming stage. In many cases, the API comes as an library in its own. If a comparison was to be made between an API and a real life object, then an API is like a manual but also like lego blocks, it gives you instructions on how to do things and gives you the building blocks to do it yourself and learn. Main advantages of using an API library support for a programmer is that he/she learns faster about programming, saves time as well as resources. API isn't found on every single program etc. and therefore a programmer must learn to live without it in order to be successful.
                
A good example for API would be a history that happened within a game called Minecraft, created by Swedish studio of Mojang. Minecraft is a sandbox games that allows the player to kind of have his own 'lego set' and do with it what he wants, he gets a world and he can play around in it and do whatever he wants. Mod support was very popular within Minecraft but by the end of 2012 it was weakening since it was really hard to create mods for it. Mojang then released an API of the game which greatly supported the modders and allowed them to do what they love faster and with higher quality and efficiency which revived the game.
This shows how an API can help not only the users, but the game/program itself.

Graphics Pipeline:
Graphics pipeline, also known as rendering pipeline. Is a recorded sequence of steps that is used to create a 2D raster representation of a 3D scene. The 2D raster representation needs to be created since it is the only way to portray the image to the user on the monitor, the monitor itself operates in 2D and therefore requires a 2D image instead of a 3D image, the graphics pipeline allows for changing that image from a 3D image into a 2D one which is then visible to the user. In the early days of 3D, the graphics pipeline had fixed hardware in order to speed up the process of actually sending the data around but in today's time it is no longer necessary, graphical pipelines have became a very flexible and strong feature of everyday computing. The main two pipelines that are used today are the OpenGL and DirectX pipelines which are constantly update to meet the needs of the ever developing technology and industry.

The way that a graphical pipeline will work (and as it always worked) is that it will begin rendering the 3D environment using the 3D polygon rendering technique, it will start off with rendering the primitive shapes within the environment, that includes things like squares, triangles, sphere, pyramids etc. then the pipeline will transform the coordinates around the world to a 3D system from a local system in order to be able to do the next steps, starting from camer
+a transformations on the axis, then to lightning rendering, then to project transformation, clipping, scanning and texturing. All of these tasks the pipeline does over time and when it finishes we will be able to portray our 3D environment on most computer screens.

The graphical pipeline is extremely important as without it we wouldn't be able to have the amazing 3D games we have today as well as in general, would be stuck in a 2D world. With the help of a graphical pipeline, we can create entire world in weeks instead of years.

Sources:

Written:
http://en.wikipedia.org/wiki/Application_programming_interface
http://en.wikipedia.org/wiki/Graphics_pipeline

Images:
http://msdn.microsoft.com/en-us/library/windows/desktop/ff476882%28v=vs.85%29.aspx
http://nbry.wordpress.com/2013/02/10/open-innovation-and-distributed-business-model-through-api/