Wednesday, 29 March 2017

Environment Theory

Applications of 3D
3D is used in various ways by the games industry and the interactive media as a whole. 3D models are displayed by many types of media, primarily Video Games and  Architecture. One notable example of 3D modeling being used by the virtual media is models within video games.
As seen above, are two Characters from the video game Assassins Creed Brotherhood. They are 3D models, that are rendered and are animated in order to be placed into FMV's such as Cut-scenes or to be used as NPC's in the game environment. 
3D models are used in games to bring the worlds to life and to give off a level of reality that is just not there in 2D games due to their unrealistic nature. 3D is commonly utilised in modern games due to technological advancements that no longer hinder designer's from creating believable and immersive worlds. They are used to create Player Characters, Non Player Characters, Environments, Textures, etc.
Above is an example of a 3D environment made and rendered in the 3D modeling application Blender.

3D is mostly used in games for the game graphics. A 3D game allows for greater realism and while more strenuous on hardware, 3D games now make up the vast majority of the market due to their emphasis on realism and their potential for technological wow factor. When a 3D level is backed up by expertly crafted textures and realistic character models, the realism of a 3D video game can verge on the level of Uncanny valley territory. Games first started using 3D largely after the release of Super Mario 64 which was one of the first games to feature true 3D polygonal graphics, especially in large open areas. This level of technical prowess impressed the industry and the player-base, which spurred the rest of the industry to follow suite.

Super Mario 64 was the first game to feature full 3D polygonal graphics. It was revolutionary, and the industry followed suite.

3D models are also used in Architecture. This is because programs and applications such as Blender and Google Sketch Up can let architects build their plans and see what they would be like constructed in 3D and to see if their plans and blueprints need altering, and if so, how to alter them effectively. Another use of 3D in architecture is the architectural presentation aspect. By creating 3D models, architectural ideas can be pitched to funders and can give potential stock holders in projects a better idea of what their money is being used to build. It can also give them an idea of whether they would want to put money into a project in the first place, especially when a model is shown prior to construction of a building or any other architectural project.

As seen above, is the 3D model of a house. These are crucial to architects due to the fact 3D modeling can give them an idea of the scale of a project, which can show them any flaws in a design and how to potentially alter and correct an ineffective design.
The same can apply to engineering. The plans of an engineer can be created by these programs and rendered out to give them an idea if their plans are correct and need to be altered. It can also give engineers an idea of what a completely finished design can look like with all necessary changes applied. As is the case with architecture, engineering models can be presented to potential or ongoing shareholders/funder's in order to give them an idea of how the engineering project is going and how a prototype or the final concept will turn out.

A seen above is the 3D model of a car. This would allow a mechanic to create a mock design of a car project blue print, and allow the mechanic or designer to find faults in their car design before prototypes can be made allowing for both time and money to be saved.
3D is utilised to great effect in medicine as well, especially 3D printing. 3D printers are used frequently in medicine to create and manufacture a variety of medical equipment and devices such as external prostheses (Arms, legs etc), Implants (Hip Joints, Cranial Plates etc) and instrumentation. This allows for more advanced medical equipment to be produced faster and in the long run, for a lower cost.
As seen above is a limb made via 3D printing.

Written References:
http://blog.digitaltutors.com/whats-the-difference-a-comparison-of-modeling-for-games-and-modeling-for-movies/
https://gamedevelopment.tutsplus.com/articles/3d-primer-for-game-developers-an-overview-of-3d-modeling-in-games--gamedev-5704
https://en.wikipedia.org/wiki/3D_modeling
https://en.wikipedia.org/wiki/Uncanny_valley
https://en.wikipedia.org/wiki/Super_Mario_64
http://3dprinting.com/products/architecture/how-3d-modeling-changed-architectural-presentations/
http://www.fda.gov/MedicalDevices/ProductsandMedicalProcedures/3DPrintingofMedicalDevices/ucm500539.htm


Visual References:
http://assassinscreed.wikia.com/wiki/File:Laurent_Sauvage_Character_models_2_-_Assassin's_Creed_Brotherhood.jpg
http://www.design-engineering.com/3d-freebie-blender-2-66-released-95534/
https://udemy-images.udemy.com/course/750x422/683198_ef78_4.jpg
https://gotgame.com/wp-content/uploads/2012/11/mario64_3_display.jpg

Displaying 3D Polygonal Animations
Shown above is a 3D model of a face going through 3 stages of 3D Rendering.

3D Models can be and are displayed in a variety of ways. The most commonly used way is rendering. Rendering is when a 2D or 3D wire-frame of a model have features added such as lamination, colouring and shading in order to achieve the most life-like images on screen as possible. There are two primary forms of rendering.
  • Pre-Rendering
  • Real Time Rendering
Pre-Rendering is primarily used for the creation of 3D movies. This is due to the CPU Intensive nature of pre-rendering, which can be taxing if not impossible for standard computer systems to perform. The use of Computer Systems with specialist components make the use of Pre-Rendering a reality for the movie industry.

The complexity of such images require Pre-Rendering to be used due to the intensity of the rendering process.

Real Time Rendering is used primarily within 3D video games, due to the high level of interactivity this type of rendering can provide. Real Time Rendering is primarily the creation of synthetic images at a speed that allows for interaction with a 3D environment. The rate in which Real Time Rendering is measured is called Frame Rates (FPS) or alternatively Hertz (Hz). The Frame Rate is the exact measurement of how quickly the device responsible for the imaging produces the consecutive images.

3D game graphics such as those featured in Grand Theft Auto V are rendered in real time, allowing for the player to interact with the virtual world via an ingame avatar (The Player Character).

Examples of applications that utilise rendering include the likes of Blender and Google Sketch Up. It is arguably the most used form of displaying 3D Polygonal Animations.

Blender is one of the 3D applications that utilises rendering to display it's 3D Models.

One of the main ways of displaying 3D Polygonal Animations is the utilisation of rendering a 2D Raster representation of a 3D scene. The process in order to achieve this is called a graphics pipeline. This is the process of of turning a 3D Model into what is shown onscreen. The pipeline begins by setting up a graphical interface in the form of a bus interface in order to send and and receive commands and data. Upon setting that up, Vertex Processing begins. This is when each vertex is converted to a 2D screen position upon which lighting can be applied to effectively determine the colour. If a programmable vertex shader is utilised, the application can perform custom transformations such as the warping and deformations of shapes.

Upon the completion of the Vertex Processing, Clipping begins. This is when the parts of the images that are not visible on the 2D screenview are removed. Upon this being carried out, the next stage is primitive assembly and triangle setup. This is when the vertices are collected and then converted into traingles. Information is then generated in order to allow the later stages to accurately generate the attributes of the pixels within the triangle. Rasterization then begins. The triangles begin to get filled with pixels known as 'Fragments'. Upon completion, pixels that are being hidden by other objects in a scene, are removed in a proccess called Occlusion Culling. The values of the pixels that underwent Rasterization then are computed based on effects such as Texture, Colour and Fog.

Pixel Shaders are then added, with textures and final colours being added to the fragments. This stage is also called a Fragment Shader, which is a programmable pixel shader that enables the application used to combine the attributes of the pixels such as depth, colour and position onscreen. The textures are user defined with custom shading effects being generated. Pixel Engines then begin used. The final fragment colour is mathematically combined, with its coverage and degree of transparency with exsisting data, being stored at the associated 2D location within the frame buffer in order to produce the pixels final colour at that location. Throughout the entire proccess, a frame buffer controller is interfaced into the physical memory in order to hold the actual pixel values onscreen. The memory of the frame buffer is used to store graphic commands, textures and also at times to store other attributes associated with each pixel.



As seen above, is the complete graphical pipeline diagram. This shows all stages in the correct order and give's an idea of how the proccess can be carried out.

API's is also useful for displaying 3D Models. An API (Application Program Interface) is a set of protocols and routines that are used to build software applications. The main function of API's is that the software components are specified on how to interact. API's have also been used for the programming components for Graphical User Interfaces (GUI's). There are two main types of API, Video and Sound. For displaying 3D Polygon Animations, video API's are used.

OpenGL is one of the main graphic's API's used in todays technology. SInce its creation in 1992, it has goen through many updates and just like its rivals such as DirectX, it is updated frequently to be used with modern systems.
Written References:
http://whatis.techtarget.com/definition/rendering
https://en.wikipedia.org/wiki/Graphics_pipeline
https://en.wikipedia.org/wiki/Real-time_rendering
http://www.webopedia.com/TERM/A/API.html
http://www.pcmag.com/encyclopedia/term/43933/graphics-pipeline

Visual References:
https://piamulholland.wordpress.com/unit-66/displaying-3d-polygon-animations/
https://msdn.microsoft.com/en-us/library/windows/desktop/ff476882(v=vs.85).aspx
http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX
http://www.avatarmovie.com/assets/images/photo-11.jpg
http://stuffpoint.com/grand-theft-auto-v/image/309438-grand-theft-auto-v-environment.jpg
https://en.wikipedia.org/wiki/File:Graphic_Pipeline_New_Tech.png
http://www.pcmag.com/encyclopedia/term/43933/graphics-pipeline


Geometric Theory

There are many principles behind the creation of virtual 3D space. The fundamental principles are Contrast and Variety, Harmony, Rhythm, Continuity, Emphasis and Balance.

Harmony keeps the resolution in opposition which positively affects 3D environments. The principle of Continuity keeps the movement or the rhythm of the 3D space organised. Another principle is Emphasis. This means that something in the 3D space must stand out. This could be the art style, the core deign elements or the overall genre that the 3D space is based off.

The principle of Contrast and Variety helps the 3D space by keeping a constant state of change via a variety of changes such as different textures, assets and shapes. The element of Proportion endorses that the other elements should be compared to one another in regards to properties such as the extent of the emphasis in the 3D space, the quantity of assets and textures and the size of the environment, compared to the assets within.

The final fundamental principle of the creation of 3D space is Balance. Balance within a 3D space is the relationship of the environments parts in coherence with the 3D space. There are two types of balance within a 3D space. The first being symmetrical balance. This is when the visual aspects of the 3D environment or space are equal in regards to a centre point in the 3D work space. The second is Asymmetrical balance. This balance is is achieved via the visual aspects within the 3D space being dissimilar. For example, a particularly large object within the environment would be balanced by multiple smaller objects in order to maintain balance within the overall 3D space.

Another principle behind the creation of virtual 3D space is the Cartesian coordinates system. This is a system that is used to define positions, usually in VR renderings and computer displays. Cartesian coordinates entail two perpendicular axis's that cross at a central point, that is referred to as the origin.

The coordinates are determined via displacements from the origin along the east/west and north/south axis (which are referred to as X and Y usually). The Cartesian Plane also has a variant called Cartesian three-space. This is when the Cartesian Plane has third axis which is oriented at the right angles in regards to the XY Plane.


 There are many terms used within Geometric Theory. Examples of terms used include:
  • Polygons - A plane figure that is bound by a closed path or circuit. They are composed by a limited number of straight line segments that are referred to as vertices. The completed polygon is named the body which is able to be modified within 3D polygons in order to achieve any shape the user may want.
  • Meshes - These are a collection of vertices that define the overall shape of a model within 3D software. There are many different variants of mesh, the most common being polygonal. This is created by combining the vertices, faces and edges that define the overall shape of Polyhedral objects. In order to create a polygonal mesh, the faces would have consist of quadrilaterals, triangles and any other polygons defined as simple complex. Other meshes aside from Polygonal include Vertex, Winged Edge and Render Dynamic.
  • Primitives - Geometric Primitives, are the simplest objects a system can store or draw within 3D and CAD applications. Examples of Geometric Primitives include Cylinders, Spheres, Cubes, Cone's and Pyramids. 
  • Vertices - Vertices are the corners and intersections of geometric shapes. Vertices can be selected and modified which can be used in order to change the shape of a 3D model. 

Written References:
http://www.bishoplynch.org/document.doc?id=2466
http://whatis.techtarget.com/definition/Cartesian-coordinates-rectangular-coordinates
http://www.basic-mathematics.com/cartesian-coordinate-system.html
Visual References:
http://www.basic-mathematics.com/cartesian-coordinate-system.html

Mesh Construction

3D models are constructed in a variety of ways. For example a method of a 3D modeling/mesh construction technique is Box Modeling.

Box Modeling:
 This is when primitive shapes are modified in order to create a rough draft of the final model. This basic shape is then used to help sculpt the final model as a base form. The primary ways of modifying primitive shapes in box modeling are extruding the faces of the shapes and scaling them in order to achieve the draft of the final model. A distinct advantage of box modeling is that it is easy to learn and as such, is quick to learn. One way in which it is faster than other types of mesh construction is that it is faster than placing all the models point's individually. Due to this however, the models created using this method tend to be less detailed as a result of the lack of points to manipulate. Only those with a large amount of experience with this method can create detailed models.



Polygonal Modeling:
This method of 3D Modeling also known as Extrusion modeling, is when a 2D shape is used in order to create a outline of drawings or photos. This method is usually carried out using the line tool in 3D modeling programs and applications because of its easy to access and use nature. The method is commonly used to create models such as faces by 3D artists because of the methods simplistic and practical approach which makes normally complex models somewhat easier to model. The basic approach of polygonal modeling is that the model is created by using polygons to approximate the models surface.


NURB'S Modeling:

NURB's (Non - Uniform Rational Basis Spline) Modeling is a 3D Modeling technique that has a mesh that doesn't have vertices, faces or edges. It is primarily mathematical in nature, and as such is used to create and generate curves and surfaces. It is known for its great flexibility and precision, and as a result, is used for analytical shapes as well as standard modeled shapes. NURB's is used frequently for CAM and CAD work among other industry wide practices. NURB's also features in many different 3D software and application packages such as Blender. This is due to the fact NURB's modeling can be efficiently handled by multiple programs and is not very hardware intensive, allowing for it to be used on a variety of different hardware specs and computer systems.

NURB's surfaces consist of two parameter mapping functions being mapped to a 3D space. The shapes surface is determined primarily by control points. These surfaces can represent simple geometrical shapes when compacted. Subdivision surfaces and and T-Splines are more suitable for more complex organic shapes due to the fact they reduce the number of command points twofold in comparison to NURB's modeling.

In the place of vertices, faces and edges, the mesh's have surfaces that are smoothly interpreted. These are achieved by lofting a mesh between multiple Bezier curves. In order to use NURB's modeling, a tool, somewhat similar to the pen tools found in applications, is used to create a NURB's curve. This forms the basis for creating a model via NURB's.



Written Reference Links:
https://jessgrafton.wordpress.com/3d/mesh-construction/
http://www.jjonaitis.com/tuto/tuto2.htm
http://3d.about.com/od/3d-101-The-Basics/a/Introduction-To-3d-Modeling-Techniques.htm
https://scotty1108.wordpress.com/3d/mesh-construction/
https://www.lifewire.com/box-modeling-2150
https://en.wikipedia.org/wiki/Box_modeling
https://en.wikipedia.org/wiki/Polygonal_modeling
https://www.smashingmagazine.com/2013/09/introduction-to-polygonal-modeling-and-three-js/
https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline

Visual Reference Links:
http://dcdesign.wikidot.com/wiki:box-modelling
https://xsisupport.com/2012/10/23/ice-modeling-setting-extrusion-length-and-inset-based-on-polygon-area/
http://userpages.umbc.edu/~bailey/Courses/Tutorials/ModelNurbsHead/ModelNurbsHead.html

3D Development Software

3D modeling software is a form of 3D computer graphics software used to produce 3D models. Programs that classify as modeling software can also be called modelers or modelling applications. There are numerous forms and version's of 3D modeling applications. Prominent examples include Blender and Maya among many others.

Blender: 

Blender is a 3D modeling program that is open source in nature. It fully supports the entire 3D pipeline and is very accessible, due to its cross platform nature. It is supported on devices such as PC and Mac due to it being compatible on all major operating systems (Windows, Mac and Linux). Blender can also be used for Python programming, due to Blenders API nature. It has a variety of features such as 3D modeling, texturing, animating, sculpting and rendering. It also has a double function as a games engine.

It began in 1995 when a dutch animation studio called Neo Geo developed Blender with the purpose of being an in-house application. In July 2002, a fund raising campaign was raised in order to make Blender a free application. By September that year, the campaign has raised enough money and released the source code for Blender. It has had multiple version since 2002 and as such, it has developed exponentially since it inception. Notable versions include 2.26 where the free version was released, 2.48 where the game engine had multiple main functions implemented and 2.68 where rendering was improved substantially.

Blender is available in both 32 and 64 bit allowing for use on many operating systems, with the 64 bit version allowing for over 4GB of RAM to be utilised, allowing for increased engine and application performance. Due to its free nature, it lacks many feature available in paid 3D modeling software, however some features are akin to what is seen in Blender's more complex brethren.







Autodesk Maya:

Autodesk Maya is a 3D modeling program available on Windows, Mac OS X and Linux. It was originally developed and run by Alias Systems but was then bought by and currently run by Autodesk Incorporated. It primary purpose is to 3D application's of an interactive nature such as video game's and visual effects.

Maya began in February 1998, after being originally being a code based animation project that was owned by Wavefront technologies. Upon it's inception in 1998, Maya was bought by Autodesk after a series of acquisitions. upon which it was renamed to Autodesk Maya. Despite this change, Autodesk Maya is primarily known as and referred to as Maya.

Maya has been used in many well known film projects with primary examples being Finding Nemo, Frozen and Rango. Well known TV series in which it has been used for special effects include Game of Thrones, The Walking Dead and Futurama. It hasn't been used for many video game effects however it was noted for its usage in Halo 4.





3D Studio Max:
3D Studio Max, previously known as 3D Studio, is a 3D Graphics Program that is used professionally. Just like Maya, it is owned and run by Autodesk. It is known for being utilised to produce 3D models and animations and is used frequently in the video games industry. 3D Studio Max was originally created for use on DOS platforms, however, it was then rewritten for Windows NT platforms and was then renamed 3D Studio Max. This version was created by YOST group and was released by Kinetix. 3D Studio Max supports multiple forms of 3D Modeling including Polygonal modeling, NURB's modeling and Box Modeling.





Written Reference:
https://www.blender.org/about/
http://www.autodesk.co.uk/products/maya/features/all
http://www.autodesk.co.uk/products/3ds-max/features/all
https://en.wikipedia.org/wiki/3D_modeling
https://jessgrafton.wordpress.com/3d/3d-development-software/
https://en.wikipedia.org/wiki/Blender_(software)
https://en.wikipedia.org/wiki/Autodesk_Maya
https://en.wikipedia.org/wiki/Autodesk_3ds_Max

Visual Reference:
http://forum.qnap.com/viewtopic.php?t=122700
https://en.wikipedia.org/wiki/Blender_(software)
http://howtolearn.me/how-learn-maya-free/
http://autodesk-maya.en.softonic.com/mac
http://www.microfilmmaker.com/2011/11/3ds-max-revie/
https://www.emaze.com/@ACTORLQQ/3D%C2%A0Studio-Max

Constraints:

Creating and working with 3D environments has many constraints. These can include Polygon count, file size and rendering time.

Polygon Count:
Polygon count can severely hinder the production of 3D environments. The higher the count, the greater strain on the computers processor upon which the 3D environment is being created. This can lead to performance issues that can make the 3D environment unplayable if left unchecked. This can be solved by reducing the polygon count within the 3D environment by reducing the amount of detail on assets, reducing the amount of 3D models within the environment or deleting them out right.  


File Size:
File Size can, if left unchecked, create problems with creating and working with 3D environments. I f a file is too large, it can create problems such as long rendering times.This is especially problematic, especially if the 3D environment in question has a deadline to be completed by. Also the computer used to create the environment can run slower while creating or working with the 3D environment, because of the amount of space being taken up on the computers hard drive.



Rendering Time:
Rendering Time can be problematic when it comes to  working with 3D environments. If a environment is large in regards to its file size, it can take a large amount of time to render out. In some cases, it can take days in order for a 3D environment to render out fully. rendering can also be used for viewing 3D models opposed to just being used to produce 3D models. This is referred to as 'Real Time Rendering'. This is when the rendering is done without any delay between transformations.

Non Real Time Rendering is when the images produced via a rendering engine are not instantly used. This allows for more complex algorithms to be calculated in order to achieve greater photo realism. The primary differences between Real Time and Non Real Time Rendering are that Non Real Time rendering is usually used in movies and TV because it allows for more detail to be added before rendering is completed. This is because the rendering process takes a long time, in some instances over a few days, depending on the hardware used for the task. However, Real Time Rendering which is used in video game's is a much faster process. This prevents complex algorithms being calculated during rendering which allows for less detail in comparison to 3D models produced via Non Real Time Rendering.



Written References:
Visual References:

2 comments:

  1. You truly helped me understand this topic with your well researched post, thanks for all the good work.

    ANIMATION SERVICES in UK
    ANIMATION SERVICES in India

    ReplyDelete