3d-modeling for computer games · 3d-modeling for computer games theoretically, if a computer could...

17
3D-Object Modeling for Computer Games Computerspiele Seminar Diego Montoya Orozco Ulm, Deutschland Summer Semester 2010 [email protected] Mtklnr. 716654 Master IST

Upload: dangtuong

Post on 12-May-2018

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Object Modeling

for Computer Games

Computerspiele Seminar

Diego Montoya Orozco

Ulm, Deutschland

Summer Semester

2010

[email protected]

Mtklnr. 716654 Master IST

Page 2: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

2

Page 3: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

Table of Contents

Why model in 3D?

3D – Representation

Solid and Shell Objects 5

Polygons 5

Meshes 5Box Modeling 5

Non Uniform Rational B-Splines 6

B-Splines and Bézier Curves 6Control Mesh 7

Particle Modeling 9

3D – Scan

Contact Scanner 10

Non-Contact Scanner 11

Active 11Passive 11

Texture Mapping

Bump Mapping 12Texture Synthesis 13Anti-Aliasing 14

For the future

References

List of Figures

3

Page 4: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

Why model in 3D?

At some point of our lives, we have all played video games. At the beginning there were only pixels that somehow represented a character or object. A mere abstraction of the main features of an artistic figure, which could be manipulated in 'real time' and let the user play virtually. With the evolution of technology, more memory and computation power were available. The application of mathematic models together with fast computation power allow representation of complex objects in realistic spaces, all of this in the reach of our hand. So, what before used to be some pixels that moved across the screen in a rather static manner, is now a huge numerical model, representing objects that interact in a theoretical three-dimensional space. The result? Realistic images and natural scenery.

But video games is not the only application for 3D-models. They are used in simulation of physical phenomena during the development of new technologies, to understand the behavior of organisms in medicine, they are used as tools in education to teach didactically, to test products before they even exist, to plan architectural and civil constructions, to control robots that can build cars or assist heart surgery and even to research and analyze the laws of physics. And of course they are used to communicate ideas and express feelings, to create art that is. New cinema blockbusters are very often animated films; and all movie genders, in a greater or lesser extent, have adopted computer effects. Modeling in 3D has advanced more or less parallel in the video game and movie industry as well as in the technology development. New scientific discoveries have led to more sophisticated computer games, and breakthroughs in the entertainment industry have derived into improvements in other fields.

Here it will be discussed how objects can be represented and produced in 3D, and how a texture can be applied to this objects.

4

Page 5: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

3D – Representation

Solid and Shell Objects

3D objects are represented through mathematical models using a collection of data which includes coordinates and other information, depending on the model. In order to do this, we use different entities, such as triangles, lines and primitive shapes for example.

Mainly, 3D models can be divided into two kinds. Solid and Shell models. The first kind describes an object in its wholeness. They tell how do they look on the outside and how they are in the inside. They are particularly useful in engineering and research, as they provide a very accurate approximation of reality when it comes to simulating the laws of physic or behavior of organisms. On the other hand, they require large amounts of memory and processing power, and therefore are not apt for real time applications. The second kind of 3D models are the shell or boundary models. In this case, objects are represented just by means of their surface, that means that they are 'empty'. Looking back to the games from the first generation of 3D video consoles (Nintendo 64, for example), if the player managed to get 'inside' of a wall, he could see through it, as the model for this wall was a bound model, and the surface is only visible from one side.

Polygons

Meshes

An isolated point, a coordinate in a xyz space, is a vertex. When two of this points are joint using a line, an edge is formed. Then, if a set of edges is put together to form a closed figure, the delimited two-dimensional space between those edges is called a face. If flat faces are chosen to approximate an object, and they are built together always joining vertices with vertices and edges with edges, a grid will be created. This grid is know as a polygon mesh (Illustration 1). There are several ways to save the data needed for the model, like vertex-vertex, face-vertex or winged-edge structures. They vary on memory and processing power needs, and the most common one used in modern graphics hardware is face-vertex. An advantage of a polygon mesh representation is that to modify it, a vertice can be independently manipulated, as well as an edge, a face or a mixed group, giving a lot of possibilities. The disadvantage is that an increasing object complexity will cause a need for more polygons to achieve an accurate representation. That means more memory and processing power.

5

Illustration 1: Simple polygon mesh.

Page 6: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

Theoretically, if a computer could process an infinite number of infinitesimal small polygons, the representation would be perfect, but would also demand an infinite memory and processing power. Polygon meshes have been the most used way of representing objects in 3D-Software. Programs like Blender, Maya and GILES use this methodology.

Box Modeling

There is a simple way of producing models taking advantage of the characteristics of the polygons. Box modeling is based on a single premise, anything can be represented staring from primitive shapes, for example a box.

To understand how it works, we must understand a few procedures. The first one is dividing faces, which is simply dividing a polygon to create two or more new polygons. The second one is scaling. As the name says, it consists on taking the selected part of the object and making it bigger or smaller, of course this only applies to edges and faces. Next comes translating, which is taking part of the model and move it to or away from the rest of the object, reshaping the edges and faces that unite both parts. Other

important operation is rotation. Similar to translation, part of the object is moved, but this time turning around a fixed axis, and keeping the 'mass center' of the part being modified static. Last comes extruding a surface. Extruding is taking a surface and duplicating all the vertices and edges. Then the replica is translated away from where the surface was, while conserving the original shape. New edges are created between tween vertices, as well as new surfaces limited by these produced edges (Illustration 2). If a face of a cube is extruded, we can obtain two identical cubes, or a prism sticked with the original cube. In box modeling, an evolution-like process is followed. Departing from a simple cube, surfaces are extruded an polygons divided to produce new polygons. New vertices/edges/surfaces are divided, scaled, translated and rotated according to the shape of the desired design. The process is repeated to form a basic structure used as a skeleton. Once it is ready, the same recipe is followed in a closed range to add as much detail as wanted. A few steps of this evolving task is shown in Illustration 3. A 2D model, often hand made, can be used to aide the modeling process. Gradually from simple to complex, just like a computer version of Darwin's law.

6

Illustration 3: Box Modeling process.

Illustration 2: Extrude operation on a flat

surface

Page 7: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

Non Uniform Rational B-Splines

Polygons are not the only way to represent a 3D model. There are other very clever ways to do it. Meshes are often unnatural looking and tend to demand a lot of effort to achieve a realistic appearance when it comes to organic objects. Non Uniform Rational B-Splines (NURBS) can be used to smartly overcome this problem. In order to understand its properties, two other representations will be explained first.

B-Splines and Bézier Curves

B-Splines are interpolating curves that use a set of functions of a given degree 'n', called Base Functions. What makes this functions special, is that they have a non-zero value only in a finite interval or region (Illustration 4). This last feature gives B-Splines an important characteristic, which is local support. That means that a part of the curve can be modified without modifying the rest. Another important thing about B-Splines is that they can have

continuity to a degree 'n-2'. That means that from 0 to the (n-2)th derivative are equal at the joint point for the curves/surfaces. For example, a curve approximated by a 4rd grade B-Spline should be continuous (0th derivative), have soft edges (1st

derivative) and its curvature should not change abruptly (2nd derivative)1.

Bézier curves are named after a French engineer named Pierre Bézier, who used them to design the body of a Renault Car in the 1970's. They are parametric curves that draw a soft curve according to given control points. They can be e described by the following mathematical expression:

B u=∑k=0

N

P kN !

k ! N−k !uk 1−uN−k ,0u1 2

What is interesting about this curves is the way this curves are constructed. To illustrate it graphically, straight lines are drawn between the control points. Then more straight lines are drawn between some new vertices located at proportional points of the first lines(at a fourth for example, Illustration 5). That can be done recursively 'n' times to picture a 'n' degree curve. If points are drawn at the same proportional hight

1 An introduction to splines for use in computer graphics and geometric modeling By Richard H. Bartels, John C. Beatty, Brian A. Barsky. Chapters 1,3 and 4.2 http://www.timotheegroleau.com/Flash/articles/cubic_bezier_in_flash.htm

7

Illustration 4: Examples of base functions.

Page 8: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

as the vertices on the last resulting line, letting a normalized 't' parameter run from 0 to 1, we get the Bézier curve. In order to construct a Bézier surface it is needed to do the same process, but in a 3D-space and running through 2 parameters. Several Bézier curves or surfaces can be “patched” together to form a more complex object, also with local support. This curves have a very natural look and its mathematical model can also be applied to model movement, resulting in soft natural movements.

Control Mesh

NURBS, as they name suggest, are B-Splines with a certain weight for control point determining the contribution of the corresponding base-function (rational), and non uniformly placed knots delimiting the non-zero part of the functions. To construct a family a functions for the NURBS, first a simple family of functions is defined, consisting from functions that go linearly from 0 to 1 in an interval between knots and from 1 to 0 in the next one. Two adjacent functions only overlap in one interval. That is the first order function family. Then we this one is used to construct a second degree family. A weighting function that goes from 0 to 1 in the non zero interval is multiplied with the function and then overlapping intervals are summed up to create a second order function. Illustration 6 shows the construction of a second degree base function. Note that the knot positioning is not uniform, as the last interval is shorter than the first two. The process can be repeated to create a higher degree family, using in general the expressions:

Once we have the function family, it can be combined with the coordinates of the control points to draw the curve:

8

Illustration 6: Construction of a 2nd degree base function.

Bottom: 1st degree functions. Middle: weighting functions.

Top: resulting function.

N i ,n= f i N i , n−1g i1, nN i1,n−1

f i ,n u=u−k ik in−k i

g i , nu=k in−u

k in−k i

C u =∑i=1

k N i , nwi

∑j=1

k

N j ,nw j

P i=∑i=1

k

N i ,nw i

∑j=1

k

N j ,nw j

P i

Illustration 5: Cubic Bézier curve at t=0.25.

Page 9: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

Often 3rd or superior order NURBS are used (default is 3rd order in Maya), because they suffice to draw very natural curves without excessive processing overhead and restricted local support. One interesting characteristic is that such curves can perfectly represent conic sections as circles and parables. The draw back is that during parameter sweep, the construction of the section won't follow the that of the original primitive function. For example, a circle can be perfectly represented using 8 control points, but the construction as the parameter 'u' runs won't be regular as with the y=son(u), x=cos(u) parametric functions but rather brake and accelerate while drawing the circle. This is mostly not a big issue, as the construction of the curves is done before using the model. Superior order NURBS have point, tangent and curvature continuity and local support, like regular B-Splines, and give a soft look using control points just like Bézier curves. In fact, it can be demonstrated that NURBS are a generalization of the Bézier curves and B-Splines3, therefore having features of both of them. A regular polygonal mesh can be used as control point mesh for a NURBS model, as Illustration 7 shows, giving impressive results.

Particle Modeling

A new problem arises when the goal is to model things like hair, snow or grass. The idea to solve this, is to create stochastic models to simulate fuzzy phenomena. A particle system consists of one or more particles that have attributes that directly or indirectly affect the behavior of the particle, or ultimately how and where the particle is. Attributes of particles can be position, velocity, color, lifetime, age, shape, size and transparency. Also, each particle has a life cycle, including its generation, dynamics and extinction4. Modifying this parameters different phenomena can be modeled, such as fire, water, explosions, dust, fog, hair, grass, trees or even schools of fish. Depending on the phenomena, the path followed by the particle can or cannot be preserved. If modeling snow is desired, the particle is a flake moving through time with certain dynamics. If the snow flake's path is preserved, a hair like model is created, which could be further modified to add hair dynamics when animating (Illustration 8).

3 C. de Boor, On calculating with B-splines, J. Approx. Theory 6 (1972)4 http://web.cs.wpi.edu/~matt/courses/cs563/talks/psys.html

9

Illustration 7: Control mesh and NURBS model

Page 10: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

3D – Scan

Nowadays powerful computers and huge amounts of storage are a common thing. To realize an entertainment game and stunning graphics is not just a matter of how has cutting edge technology. It may have never been so, but for sure it was the most important factor during several years. Today more than ever artistic efforts are an intrinsic part to develop computer games. That is why the industry has repeatedly looked back to old ways to create art, and how it can be transported to the virtual world. Creating a complex 3D model from scratch is really difficult, and artist can be really talented with their hands, but not necessarily with the mouse and keyboard. So, the solution is to let the artist create in real life and convert the work of art to a digital version. To create a 3D model, a clay figure is created and then scanned to be afterwards manipulated in the computer screen. Several procedures can be done to do this, and they can be classified into two main categories.

Contact Scanner

As the name suggest, what this device does is, it comes into contact with the object to be scanned in order to collect data. The advantage of this scanners is that they are very precise, and the disadvantage is that the scan process is relatively slow and object has to be manipulable and of a limited size. They look pretty much like robot arms, with the big difference that it doesn't move on it's

10

Illustration 8: Particle modeling: snow vs. hair.

Illustration 9: The Phantom Omni Arm

Page 11: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

own according to a set of desired coordinates, but does completely the opposite. The arm is moved by the artist a point in the surface of the clay (or other material) object and the coordinates are read by the device and sent to the 3D processing computer tool. An example of such a working machine is the Phantom Omni Arm from ClayTools (Illustration 9). Some of them can also be used during the digital manipulation, providing force feedback and enabling true artist-technology interaction5. Some other contact scanners retrieve data automatically, sweeping the object's surface with needles. The clear advantage is the increase of speed and human error avoidance in comparison with the robot-like arm scanners, but the disadvantage is that the object is approached from only one plane, reducing resolution for transversal surfaces and loosing the capability to scan hollow formations. For other applications, some of this scanners can also work as three- dimensional printers. Illustration 10 shows an example.

Non-Contact Scanner

In some cases the object to be digitized is either too big or complex to be scanned or not available for direct manipulation. The workaround is to use a non-contact scanner. There are several kinds and again two categories arise: active and passive.

Active

This category consists of scanner that radiate some kind of light or electromagnetic wave and then detect its reflection. A first example is the Time of Flight scanner, which calculates the time between a sent laser pulse and the arrival of its reflection to calculate a distance. Another device is the Triangulation scanner. This one works with a set of know coordinates of a sender and a sensor. A laser beam is projected by the sender and the sensor detects where it is. Arrays of laser in a certain order can be used, that being known as a Structured light scanner. A triangulation operation gives the coordinates of the object as result. A variation of this scanner is the Hand-Held Laser scanner(Illustration 11), which uses the same principle,

5 http://www.ems-usa.com/clay_tools.shtml

11

Illustration 10: Roland MDX-20 from Roland Digital Group.

Illustration 11: Hand Held Laser scanner

Page 12: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

but uses additional external references (like tags and/or position sensors) or an array of optical sensors to resolve the relative coordinates to the scanned object as the scanner is moved.

Passive

If the device does not emit any light or radiation, but relies on that available in the environment, the scanner is known as passive. To explain how it works we have a very classical example, actually out in the market for a few decades already, and in-boga in the last months: Stereoscopic systems. The idea is to use two cameras two record a scene or object from two very similar perspectives, giving the representation a 3D-feel, and if done with enough resolution, enough information to build a 3D-model. The principle behind this technology has been know for a long time and has been used extensively in big budget films for the last year or so.

Texture Mapping

Until here, it has been discussed about how to model the shape of three dimensional objects and how to retrieve information from the real objects, but an important part is still missing. To wrap up and finally give a realistic (or artistic) look to a 3D model, it is needed to know how does the surface of this objects look. That is what is know as Texture Mapping, sticking an image to a surface (or particle) to achieve a certain effect. Applying textures is not as simple as it could be thought. Many problems arise, and as always there are many methods to solve them. Remember playing the first version of Doom? The textures on the walls looked somehow awkward. That is caused by the perspective, which does not correspond to an affine (linear) transformation when plotting the texture points (Illustration 12). To resolve this the Bresenham algorithm is applied, which corrects for the perspective taking into account the 3D position of the vertices of the surface to calculate the plotting points of the texture6, and also enables anti-aliasing, which will be presented in some of the next paragraphs.

Bump Mapping

One of the important features of the Texture mapping is the capability to enhance the 3D look of objects. A technique used to do is is Bump Mapping. It consists of using a flat image to affect the normal of a 3D object. That way, how light hits and reflects from the surface is modified, resulting in a rich texture feel, with fine relieve detail at a

6 Jack E. Bresenham, "Algorithm for computer control of a digital plotter", IBM Systems Journal, Vol. 4, No.1, January 1965

12

Illustration 12: Affine transformation texture mapping of a perspective

viewed polygon.

Page 13: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

relatively low processing cost. Illustration 13 shows an example. An extra advantage of Bump Mapping is that the appearance of the surface will be different depending on the light conditions and perspective, thus creating a very realistic effect that practically adds a tactile feel. A disadvantage is that shadows casted by objects will not show the detail of the bump mapping. There are other algorithms that eliminate this problem, but of course at the expense of more processing time.

Texture Synthesis

A common difficulty encountered when applying textures is how to produce this textures. Depending on the characteristics of the texture, they can be classified from regular to stochastic. The first kind are those that are patterns that are predictably and precisely repeated. A big image needed to say, color a big building wall, can be easily synthesized putting an image next to the other. Mosaics in a bathroom wall are another good example. On the other side, stochastic patterns are like noise, and can be model probabilistically. The texture of the asphalt can be an example of this, or the white noise in a screen of a TV in a non existing channel. If the mathematical model is good enough, synthesizing such a texture is straight forward.

The real complications arise when the texture is something between stochastic and regular. For this cases, more complicated models are used. They part from regular tiling to further get data from user assisted lattice extraction. That way deformation models of the near regular texture is computed, and the synthesis can take place7. Other simpler but similar option is patch-based synthesis. There a semi-regular surface is tiled from one or several mold images, but not in a regular way. Here, the position point to realize the tiling is calculated approximating a lattice, and using only parts of the mold image, in order to create a pseudo-correct texture (Illustration 14).

7 Yanxi Liu, Wen-Chieh Lin, and James H. Hays. Near-Regular Texture Analysis and Manipulation. ACM

Transactions on Graphics (SIGGRAPH 2004), 23(3), August 2004.

13

Illustration 13: Bump Mapping, from left to right: First object is seen without mapping. Second is Texture applied using the bump mapping algorithm. Finally the

result after rendering, an orange-like look is obtained.

Page 14: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

Anti-Aliasing

A last effect to analyze in this document is Aliasing. When high frequencies present in an image in the rendering process overlap because of the relative low resolution, the surface shows unnatural patterns. Several approaches exist, like Gaussian filters, super-sampling and coverage sampling. What is basically done is, critical areas of the image, like edges or fine surfaces at big distances, more than one point is measured per pixel, and the actual color chosen for the pixel is some kind of average of the measurement points. The correction of this undesired effect is shown in illustration 15. Modern video cards like the HD-2000 from Radeon or the GeForce-8 from Nvidia use Multi-sampling with up to 16 randomly arranged measure points per pixel8.

8 3D-Walze, ct Magazin, december 2009.

14

Illustration 14: Image mold (left)and patched synthesized image (right).

Illustration 15: Before and after Anti-Aliasing with multi-sampling. Notice the improvement on the appearance of the squares on the back.

Page 15: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

For the future

It is of course expected to have better computer animated graphics in video games thanks to more powerful video cards and hardware capabilities. Also interaction with the virtual world is evolving with motion and image recognition controllers. That can ultimately influence the way 3D-models are designed. But don't forget about the new big thing in computer animated entertainment, 3D reproduction.

Now everybody wears funny glasses in the cinema theater while watching the last blockbuster. The interesting part about it, is that now that finally the market is ready, the technologies are really mature and even backwards implementation will be possible. That means that characters from games that were not originally meant to be reproduced in 3D will be coming out of our screens soon, as a new application for the PS3 console shows us9. New TV sets don't even need the user to wear glasses. It will be interesting to see how all the discussed techniques and subjects will evolve. Specially taking into account the architecture of cutting edge hardware, where multiprocessor systems are a common thing, and when rendering of a 3D scene for stereoscopic vision, most of the calculations are very similar. Innovations in software and hardware are expected, and problems like the difference between the focus point and depth perception in 3D projections will be affronted. All this hand in hand with scientific development. There is an endless universe of possibilities. So sit back and enjoy.

9 http://www.engadget.com/2009/09/04/ps3s-new-3d-mode-captured-on-video-coming-in-2010-to-all-exist/

15

Page 16: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

References

An introduction to splines for use in computer graphics and geometric modeling p.7

By Richard H. Bartels, John C. Beatty, Brian A. Barsky. Chapters 1,3 and 4. p.7

http://www.timotheegroleau.com/Flash/articles/cubic_bezier_in_flash.htm p.7

C. de Boor, On calculating with B-splines, J. Approx. Theory 6 (1972) p.8

http://web.cs.wpi.edu/~matt/courses/cs563/talks/psys.html p.9

http://www.ems-usa.com/clay_tools.shtml p.10

Jack E. Bresenham, "Algorithm for computer control of a digital plotter", IBM Systems Journal, Vol. 4, No.1, January 1965 p.12

Yanxi Liu, Wen-Chieh Lin, and James H. Hays. Near-Regular Texture Analysis and Manipulation. ACM Transactions on Graphics (SIGGRAPH 2004), 23(3), August 2004. p.13

3D-Walze, ct Magazin, december 2009. p.14

http://www.engadget.com/2009/09/04/ps3s-new-3d-mode-captured-on-video-coming-in-2010-to-all-exist/ p.14

List of Figures

Illustration 1: Simple polygon mesh. p.5

Illustration 2: Extrude operation on a flat surface p.5

Illustration 3: Box Modeling process. p.6

Illustration 4: Examples of base functions. p.6

Illustration 5: Cubic Bézier curve at t=0.25. p.7

16

Page 17: 3D-Modeling for Computer Games · 3D-Modeling for Computer Games Theoretically, if a computer could process an infinite number of infinitesimal small polygons, ... structure used

3D-Modeling for Computer Games

Illustration 6: Construction of a 2nd degree base function. Bottom: 1st degree functions. Middle: weighting functions. Top: resulting function. p.7

Illustration 7: Control mesh and NURBS model p.8

Illustration 8: Particle modeling: snow vs. hair. p.9

Illustration 9: The Phantom Omni Arm p.10

Illustration 10: Roland MDX-20 from Roland Digital Group. p.11

Illustration 11: Hand Held Laser scanner p.11

Illustration 12: Affine transformation texture mapping of a perspective viewed polygon.p.12

Illustration 13: Bump Mapping, from left to right: First object is seen without mapping. Second is Texture applied using the bump mapping algorithm. Finally the result after rendering, an orange-like look is obtained. p.13

Illustration 14: Image mold and patched synthesized image. p.13

Illustration 15: Before and after Anti-Aliasing with multi-sampling. Notice the improvement on the appearance of the squares on the back. p.14

17