Loading

Module 1: Stages of Graphics Pipeline - Object Representation Techniques

Study Reminders
Support
Text Version

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Hello and welcome to lecture number six in the course, computer graphics.
So, we started our discussion on 3D object representation, which is the first stage of the graphics pipeline.
To recap, let us see the pipeline again. There are 5 broad stages. As being shown on this screen, the first stage is object representation, which we are currently discussing, the other stages we will take up in subsequent lectures, namely the modeling transformation, lighting, viewing pipeline, and scan conversion.
One point I would like to mention here is that although in this course, I will follow the pipeline stages in the way shown here, in practice, it is not necessary to have this exact sequence. Some stages may come after some other stages. For example, lighting may be done after viewing the pipeline or in between some of the transformations of the viewing pipeline and so on. So, the sequence that I am showing here need not be followed exactly during the implementation of a graphics system. This is just for our understanding of the stages involved and the sequence may vary.
Now, what we have learned in the previous lecture, we got a general introduction to various object presentation techniques. What were those techniques that we discussed? One technique is point sample rendering, then
we have boundary representation technique, space partitioning techniques, and sweep representation technique. These are the 4 broad categories we mentioned, each of which has subcategories boundary representation, has three subcategories; mesh representation, parametric representation, and implicit representation.
Space partitioning has three subcategories; octree representation, BSP representation and CSG
representation. BSP stands for binary space partitioning, whereas CSG stands for computational
solid geometry. In sweep representation, we have two techniques; sweep surfaces and surface of
revolution.
Apart from these 4 broad categories, we have other representations as well. Some are application specific, there are some general advanced representation techniques, namely scene graphs, skeleton models, skeletal models and advanced modelling techniques. Now, in the advanced modelling techniques we have many such techniques, fractal representation, points sample rendering, particle systems, and so on.
Today, we shall discuss in detail one of those techniques, namely boundary representation techniques. We already have seen that in boundary representation techniques we represent an object in terms of its bounding surfaces or the surfaces that constitutes its boundary. Now, those surfaces can be simple polygons or complex steps.
There are several ways to represent these bounding surfaces. We mentioned three subcategories of representation; mesh representation, implicit representation, and parametric forms. So today we will get an introductory idea to all these three representation techniques.
Let us start with the mesh representation. This is the most basic technique of representing objects in a scene, where we use polygons to represent the surfaces. Now the polygons in terms are represented using vertex or edge lists that store information about all the vertices or edges of the surface and their relationship. For example, consider the figure here, you are representing a cube in terms of its vertices v1, v2
and so on up to v7, so there are 8 vertices. And this one is the representation where we are storing the vertices with coordinate values and some other values, capturing the relationships.
For example, here in this first row, it tells us that v0 is connected to v1, v3, and v5. Similarly, each vertex stores the other vertices which, it has a connection to, this is one
representation, there can be other ways to represent it.
Now, sometimes the surfaces need not be polynomial, but in mesh representation, what we can do is we can approximate anything to polygonal meshes like the figure shown here, here, this hand actually does not contain any polygonal surface. But this hand surface I can approximate with this type of triangular meshes where lots of triangles are used to approximate it. And again, these meshes are represented using vertex and edge lists.
In fact, the mesh representation is the most basic form of representation any other representation that we may use will ultimately be converted to mesh representation at the end of the pipeline before the objects are rendered. So, we have to keep this in mind. So, whatever representation we use and we will learn about in subsequent discussions, in the end, everything is converted to a mesh representation.
Now there is one important issue. That is how many polygons should we use to approximate the surfaces? That is a very fundamental question.
Because more the number of polygons, the better the approximation is, this is obvious. However, more subdivision also implies more storage and computation. So, if we can use three triangles to represent a surface, which (()) (8:37) if we are using 30 triangles to represent a surface, the latter representation, of course, will give a better visual clarity, better visual quality.
However, since we are increasing the number of objects or polygons in the mesh, there will be a corresponding increase in the storage because we have to now store vertices for 30 triangles, which are (()) (9:08) 3 triangles as well as computations, because we have to perform recursive subdivision to create this mesh, a larger number of times, which (()) (9:19) when we have less number of triangles. So, the creation of mesh is computation-intensive, and storing the mesh information is also storage intensive, and if we increase both, then both needs to be taken into account.
So, there is a trade-off and what we need to do is to optimize space and time complexities while keeping the quality acceptable, quality of representation acceptable. Now how to decide how to balance this tradeoff? The answer depends on the application and the resources available.
Depending on the resources and depending on what we need to render we can choose the right value for the number of subdivisions required and as well as the number of polygons. We are going to be to approximate a surface with a mesh. That is about mesh representation.
Next let us move to the other two representations, implicit and parametric representations.
Now, although we said that mesh representation is the most fundamental type of representation, for a developer it is not necessarily a very convenient mode of representation because for complex surfaces, first of all, it is very difficult to determine how many polygons should be used to create a mesh. Secondly, it is very cumbersome to enumerate all the vertices of the mesh.
If the number of polygons in the mesh or the number of meshes that we are using is large, which is likely to be the case in any practical application. So, what is required is some compromise and some way to help the developer define objects without bothering too much or spending too much time on defining the meshes.
So, designers or developers like to use representations that mimic actual object rather than its approximation. This brings into picture some high level representations, representation techniques, for curved surfaces. Now these techniques are likely to represent curved surfaces more accurately and conveniently for the designer, these are not approximations, rather more closer to the actual representations.
So, implicit and parametric representations are essentially those type of representations where it is more convenient and represents objects in more accurate way rather than approximate the objects. Now, let us start with implicit representation. So, in this case the surfaces are defined in terms of implicit functional form, some mathematical equations. In case of parametric representation, the surface points are defined in Euclidean space in terms of
some parameters, again in the form of some mathematical equations.
Now, let us see a few examples which are popularly used in graphics. Let us start with quadric surfaces.
These are frequently used class of objects in graphics which are represented using the implicit or parametric form. And this term quadric surfaces refers to those objects, which or the surface of which are described with second-degree equations or quadratic equations.
For example, spheres, these are very commonly used.In implicit form, we can represent a spherical surface with radius r and, which is centered at origin as. So, this equation we can use for implicitly representing a sphere. The same sphere can be represented parametrically also using this form where the angles theta and phi of the parameters which represent the latitude and longitude angles as shown in this figure here, this is the latitude angle and this is the longitude angle. And this p is a point on this sphere, which is represented using the parameters.
Similarly, we can represent ellipsoid also either in implicit form as shown here or in parametric form as shown here. This is another widely used quadric surface. There are many other examples like tori, paraboloids, and hyperboloids. Some other widely used quadric surfaces in graphics applications.
An interesting class of objects are called blobby objects. There are some objects for whom their shapes show certain degree of fluidity or flexibility, that means the object shape changes during motion or when comes closer to other objects. Typically, these objects have curved surfaces, but we cannot use standard shapes like lines, polynomials or quadratics, quadratic equations or quadrics to represent these shapes because these equations or standard shapes fail to represent surface fluidity in a realistic way. So, we have objects which show some fluidity, whose surfaces are represented using some curves, but those curves we cannot represent using line or polynomials or quadrics because then we will lose the fluidic nature.
Now such objects generally are referred to as blobby objects such as molecular structures, liquid and water droplets, melting objects, animal and human muscle shapes and so on, these are some examples there are many other examples also. There are several methods to represent blobby objects. In all, there is one common approach essentially to use some distribution function of over a region of space.
One method is to use a combination of Gaussian density functions or sometimes called Gaussian bumps. An example is shown here of a Gaussian density function, it is characterized by two parameters, height and standard deviation as shown in the figure. Now, when we combine many such functions by varying the two parameters, plus some other parameters, we get a blobby object or we can represent a blobby object. So, the object can be represented with a function like this. Subject to the condition mentioned
here. Now by varying the parameters, ak and bk we can generate desired amount of blobby-ness or fluidity that we require. Now, when bk becomes negative, then there are dents instead of bumps and T is some specified threshold.
An example is shown here where we have used three Gaussian density functions by varying the parameters to create an overall shape, something like this as shown in this dotted line. There is another interesting method to use the blobby objects. This is also quite popular where a quadratic density function instead of Gaussian bumps is used.
Which looks something like this b is the scaling factor, r is the radius of the object and d is the maximum radius, d is the bound on the spread of the object around its center. So how far the object is constrained around the center is specified by d. So, these three are the parameters using which we can define a blobby object in this metaball model.
Now, these are some techniques that we have discussed, however it is very difficult or even impossible to represent any arbitrary surface in either implicit or parametric form. The functions that we have already seen are quite complex in themselves. But still, there are other surfaces that may turn out to be very difficult, which are indeed very difficult to represent using such equations.
So, in order to represent such surfaces, we use a special type of parametric representation called spline representation or splines. Now these splines we will discuss in more details in the next lecture.
So today, we have got an introduction to various boundary representation techniques, so we learned about mesh representation, we learned about the basic idea of implicit and parametric representation techniques with some detailed discussion on quadric surfaces and blobby objects.