Wednesday, 30 July 2008

Basic Principles in 3D Modelling 240507

Basic Principles of 3D Modelling 240507

Background

The format of this document is to provide notes for self directed individual learning after the studio work.

You are going to do use a variety of ways of learning “Expert Novice Knowledge Transfer”, “Individual Learning” and “Learning by Doing”
http://projects.interaction-ivrea.it/learn/overview/mr_diagramatic_final_02.html

This document links to Wikipedia many times as this is an excellent source of rudimentary unverified information. Any encyclopaedia is as a source of rudimentary information and shouldn’t be cited in research as this should always reference the original source.
http://en.wikipedia.org/wiki/Wikipedia:Researching_with_Wikipedia

Objectives

Use Rhino software to understand the basic principles of 3D modelling.

Produce a 3D model, apply materials, lights and compose a scene and use it to produce photographic images.

Animate the scene and insert the output into Flash software and use standard flash interactions to control the playback.

Transfer your knowledge by using open source Blender software and free (as in beer) Google SketchUp software.

Other commercial software that can be used is:
Maya, LightWave 3D, 3ds Max, PovRay, Renderman, trueSpace, Yafray, Sunflow, Winosi, Kerkythea, Indigo, MentalRay Cinema 4D, Realsoft 3D

Basic Principles of 3D Modelling for Interaction and Visualisation

Common Concepts
There are common concepts in all computer applications.

Every program has these features:
File > Save, Save As, Import, Export
Edit > Copy, Paste, Select All
Help, About

And the discrete “Command Line” that has many names
Word has Visual Basic
Rhino has Script

Some applications are just general command line scripting tools that control other applications.
Automator for Macs
Autohotkeys
Processing
These are all classified as “Office Automation Tools”

We are in an interesting time for computer applications. All the core concepts of application type such as word processing, spread sheets, 2D drawing, photo editing and 3D modelling were created in the 1970’s and functions and interaction were perfected in the 1980’s. This means that all this work is now in the publc domain and is shared across all applications or in some cases has been included in open source packages that are free and widely used. The other implication is that most people from previous generations don’t know how to use all the features newly included in their familiar application. This is particularly true of office automation features.

Describing Pixels
2D Graphics are generally described using vector graphics that use geometrical primitives such as points, lines and curves.
http://en.wikipedia.org/wiki/Vector_graphics
These vector graphics are converted into raster graphics (pixels) for display screen or print use.
http://en.wikipedia.org/wiki/Pixel

Describing Polygons
3D modelling applications also share concepts about model construction, rendering and animation.
The process of producing a 3D model rendering can be broken down into four steps of increasing detail.
  • description and build
  • polygon mesh and boundaries
  • image mapping
  • lighting and rendering
Each step has a role to play. The description and build process is generally used by CNC (computer numerically controlled) manufacturers to control production. The polygon mesh and boundaries are used for Rapid prototyping and Finite Element Analysis simulations of strength, weight etc. Image mapping is very important to the current games and information industries and lighting and rendering is used by everyone to help visualise and communicate.

Description and Build
3D Models are generally described using just a couple of modelling techniques, "Solid" and “Surface” modelling.
Solid modelling means that you sculpt form in the 3D program
http://en.wikipedia.org/wiki/Solid_modeling

"Non-Uniform Rational Boor Special polynominal line” modelling or NURBS is really using irregular organic curves to describe surfaces
http://en.wikipedia.org/wiki/NURBS
http://en.wikipedia.org/wiki/Freeform_surface

Polygon Mesh and Boundaries
These descriptions eventually output some form of polygonal information that is used for generating vector or raster renderings.
http://en.wikipedia.org/wiki/Polygonal_modeling
http://en.wikipedia.org/wiki/Polygon_mesh

These polygons need managing to keep track of the main topological items such as faces and edges. This is also referred to as “Boundary Representation”.
http://en.wikipedia.org/wiki/Boundary_representation

Surface Normals
http://en.wikipedia.org/wiki/Surface_normal

Image Mapping
Polygons also give reference points and makes things like mapping images onto the wire frame easier.
http://wiki.blender.org/index.php/Image:Elephants_Dream-Env-Prog-UV.jpg

Having a description of an object or a graphic means that you can increase its resolution or go back and easily change portions of that description.

The core concepts for image mapping and materials are:
Materials, shading, mapping types and scale, colour, image, gloss, illumination, bump mapping, displacement mapping, noise, reflection
(Materials relate to rendering engines)

Lighting and Rendering
Environment, ambient lighting, background
Lighting, spot, omnipotent, intensity, colour, shadows and shadow types
Advanced concepts are Radiosity or Global Illumination, raytracing and caustics and refraction.

Export
Export images and alpha mats, vectors and movies.

Animation
The core concepts for animation are:
Timeline, animating mode, key frames, graph editor and acceleration.
Constraints, path or axis
Kinematics and the parent child relationship
Clouds

Export movies
Flash Presentations
Flash uses the general concept of Object Orientated Programming. This simply means naming things as objects. This allows you to send them instructions and control things like animations (called movie clips in Flash).

Here is a sample image based and a QuickTime based Flash file to hack
Import image sequence and frame numbering

Examples of Object Orientated control and the parent child relationship
Movie clips as rollover buttons

Action Script control
stop;
play;
gotoAndStop(1);
gotoAndPlay(1);

Actions placed on the rolloverButton
on (rollOver) {
_parent. quicktimeMovieName.play();
this.nextFrame();
}

on (rollOut) {
_parent. quicktimeMovieName.stop();
this.nextFrame();
}

Actions placed on the quicktimeMovie
onClipEvent (load) {
this.stop();
}

Exercises
It is important to remember that you gain more usable knowledge from your neighbours and from yourself than from any instructor.

Rhino
http://www.zen93627.zen.co.uk/gsa/3d/Rhino%20Level%201%20Training%20Manual.pdf
http://www.zen93627.zen.co.uk/gsa/3d/Level%201%20Models/

Exercise 17—Modeling in 3-D space
pdf page 61

Relative positions are view port dependant

Cut and paste the following into the command line

polyline
0,0
r48,0
r0,40
r-42,0
r45<100
r0,0,-45
r45<-80
r42,0
r0,-40
r-48,0
close

Absolute points refer to the “World Coordinate System”

Cut and paste the following into the command line

polyline
0,0,0
48.000,0,0
48.000,0,40.000
6.000,0,40.000
-1.814,0,84.316
-1.814,45.000,84.316
6.000,45.000,40.000
48.000,45.000,40.000
48.000,45.000,0
0,45.000,0
close

Draw face with 4 points

Exercise 25—Practice drawing ellipses and polygons
pdf page 89

Exercise 29—Chamfer
pdf page 107

Exercise 47—Control point editing
pdf page 143

Exercise 48—Practice with curves and control point editing
pdf page 149

Flamingo

General Principles Tutorial
To be continued…

Project work
http://www.zen93627.zen.co.uk/gsa/3d/Flamingo%20Rings%20Tutorial/Marko_Rings.pdfhttp://en.wikipedia.org/wiki/3D_computer_graphics
http://www.zen93627.zen.co.uk/gsa/3d/Flamingo%20Getting%20Started/

Ring Rendering Tutorial
http://www.zen93627.zen.co.uk/gsa/3d/Flamingo%20Rings%20Tutorial/Marko_Rings.pdf
http://www.zen93627.zen.co.uk/gsa/3d/Flamingo%20Rings%20Tutorial/

Bongo
Basics tutorial is here
To create a mechanical animation read the following and experiment
Use the help file and follow the instructions for “Constrains” > “Object Constraints” > “To an object pivot”
Use the help file and follow the instructions for “Keyframes” > “Object Keyframes” > “Edit Object Keyframes”
Use the help file and follow the instructions for “Animation Manager” > “Select Children”

Flash
http://www.flashkit.com/welcome.php
http://www.adobe.com/cfusion/designcenter/search.cfm?product=Flash&go=Go

Blender
Blender is awesome because it is the best all round 3D package with modelling animation AND logic
Blender is free and has large sharing communities

Manual
http://www.zen93627.zen.co.uk/gsa/3d/blender/b23g-2nd-edition.pdf

Wiki book
http://en.wikibooks.org/wiki/Blender_3D
http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro

Open Film made with Blender
http://www.elephantsdream.org/

Game made with Blender
http://www.luma.co.za/propeller/index.html

No comments: