Pretty Poly Editor Documentation


[Previous] [Index] [Next]

I. PPE Manual - 4. General info on modelling


A modeler (British English: modeller) is like a CAD-program in that its purpose is to create 3D-objects. However, the purpose of the objects is different: A modeller creates models that are then visualized in games, virtual-world-programs like room planing-sw, raytracers etc. Therefore the visual appearance is the only important feature. This means that for example textures are very important. Since you only see the surface of things, it is ok to just model this.

OTOH, the visual appearance in a CAD-programs is only an aid for the user and the aim is normally to design objects to be produced and to simulate their mechanical behavior, for example center of gravity etc. Therefore it is more important that the model is "consistent" and really describes a solid. For example, if the bottom of a teapot standing on a table would miss, this would be no problem for a modeller, since you cant see it, but would normally be prohibited in CAD-programs. Pure solid modellers only allow the creation of solids and are more like CAD-programs. But some solid modelling operations like CSG (constructive solid geometry, this means you can add/subtract/cut objects) may also be used when creating visual content.

To create an object you have to input the 3D-coordinates of important points on your object. There are many ways, most of them graphic, to do this. These 3D-points are called "vertices". A vertex is shown on the screen as a small dot, can be moved, selected, deleted, copied etc and can - very roughly - be compared to a letter in a text-processor. Like letters can have attributes (bold, size...), vertices can have attributes as well. Such attributes are color or texture coordinates (which part of the texture occupies is shown at this 3D-point?). Like letters are combined into words, paragraphs and documents, vertices are only the building blocks on the lowest level. You can connect several vertices with lines. If the interior of these lines defines a planar face, this is called a polygon. Special cases are triangles and quads (4-sided-polygons). Using many polygons, you can approximate a wheel. Since a wheel is rounded and polygons are always flat, you cannot represent the wheel exactly using polygons. Besides polygons, there will be round primitives (= building blocks) like sphere or cylinder.

The surface model of the wheel may be called shell. Using these again as building blocks, you get a hierarchy of shells in a structure similar to a tree. For example, you could have a racing scene consisting of several cars, each of which consists of a body, a driver, 4 wheels etc. Since the "shells" are at the moment always leaves of the "tree", they are also called "leaf nodes". Other nodes are called branch nodes since the "tree" is branching at that point. They contain information how to position the nodes "further down" in the "tree". So each wheel "knows" where it is in regard to the car - front right bottom, front left bottom, back right bottom, and back left bottom. The branch node representing the car knows where the car is on the track. When you want to reposition the car, you only need to change one information, even so several leaf nodes and maybe a thousand or a million vertices are affected.

The type of renderer that you target affects how your models should look. To get real-time behavior for fair-sized models, you need hardware acceleration. Today and in the foreseeable future, this imposes some limitations on the objects. For example, all current affordable 3d-graphics-cards only render polygons. So, for example, even if your modeller supports spheres, these are first converted to polygons so that the card can be feed with things it understands. OTOH, a raytracer (for example PovRay) will know how to render a sphere and will do so both faster and better (the sphere will look round). Therefore, a modeller optimized for the creation of real-time-contents and a modeller for raytracers have different features. At the moment, we concentrate in the real-time-stuff, but want to add the other features later.
[Previous] [Index] [Next]