An Introduction To 3D with Lyndon Daniels

Table of Contents


Part 1 : General Overview

Part 2 : Setup and Preparation

Part 3 : Polygon Modelling Tools

Part 4 : Understanding UV's

Part 5 : High Resolution Models

Part 6 : Texturing and Shading

Part 7 : Rendering and Final Output

Part 8 : Assets

An Introduction To 3D with Lyndon Daniels

Part 2: Setup and Preperation

Non-destructive Editing

iMuch of what makes 3D applications so powerful is in thier non-destructive nature, or thier ability to retain a historical, and often editable, approach to the visualization of data.

This can be contrasted with a 2D paint program which will allow you to place a brush stroke on a canvas but once the stroke is laid down, the stroke itself cannot be edited. In other words, the process of editing the stroke would be destructive or (at the very best) indirect as you would have to erease or create another stroke to modify the original stoke's appearance, thereby permerantly altering the original stroke. Indirectly you could use another tool to transform the layer it resides on, however this is not the same as editing the stroke itself.
!A 3D scene differentiates in that much of what we do within a 3D scene can be revisited and modified, having these changes ramificate all the way to the top level of the stack of operations that result in how the 3D object is visualized.

Transforming Components

Before we can begin modelling we need to take the information we've been discussing into consideration. As previously noted our cube is going to be mirrored so that we only work on half of the object and let our software duplicate our operations on the opposite side of the model. This will require,

  • 1Entering sub-object, edit or component mode of your 3D application

  • 2Selecting all of the cube's components and moving them off to a side, with atleast one face flush against an origin plane.

  • 3Finally removing or deleting the face that is on the origin plane, to avoid errors such as creating non-manifold geometry.
    iThis face is obsolete as it will create an unnecessary internal plane that dissects our characters head. We want to mirror our head along this plane. Deleting this face ensures that we do not have hidden faces inside our characters head, that will ultimately cause our geometry to deform unpredictably.

If you have performed this operation correctly when examining the cube's transform properties at it's top level or object level you will notice that they have not changed. This is because we transformed the vertices comprising the cube, rendering no effect on the cube's transform attributes. However, the manner in which the cube is visualized is as though we had translated the cube object itself.

The significance behind using this methodology for transforming our cube relates to serious concequences further down the production-line that could result in artifacts such as erroneous normal data.


Normals are used during the rendering process to indicate to a renderer which side of a face is pointing away from the surface interior and therefore potentially towards the camera. As is depicted in the preceeding imagine each polygon face will have two potential options for which side of the face is pointing away from the surface interior and towards a potential light source. A Surface's Normal will indicate to a renderer which side of a polygon face is most significantly visible.

When we start a modelling project it's best to have all of our object's transform attributes at thier default values which will be 0,0,0 for X,Y,Z translations and rotations. The scale transform will generally be 1,1,1 for X,Y,Z. Editing an object's components such as vertices, edges or faces will not effect the object's transforms, subsequently the Normal data of each face is more likely to render as expected even after complex transforms are performed at a component level.

Erroneous Normal data can sometimes appear as dark patches on a mesh that do not become illuminated even when a light is shone directly on them. They can sometimes be fixed by reverting the object back to it's defualt transform properties.
Connection failed: Can't connect to MySQL server on '' (115)