Mega May PDF Sale - NOW ON! 25% Off Digital Certs & Diplomas Ends in : : : Study Reminders Support
Text Version

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

Tuesday

Wednesday

Thursday

Friday

Saturday

Sunday

Hello and welcome to lecture number five in the course computer graphics.
Let us recap what we have learned about graphics pipeline, as you may recollect there are broadly, 5 stages of the pipeline. In the first stage we have object representation, in other words, in this stage, what we do, we essentially try to represent the objects that will constitute the scene.
Now the objects that are represented are defined in their local coordinate system. In the second stage we combine these objects together to form a scene. So, that stage is called modelling transformation stage. And here what we do we essentially perform a transformation from the local or object coordinate system to the world coordinate system.
And at the end of it, we get a scene in the world coordinate system. In the third stage, we assigned colours, colours to the object surface points. So, color assignment takes place in the world coordinate system. In the fourth stage, we make a series of transformations as well as some other operations. So, we transfer the objects from the world coordinate to a view coordinate system through a transformation called viewing transformation. So, this is essentially a transformation between world to view coordinate reference.
Now, after doing that, we perform an operation called clipping, which we do in the view coordinate space. This is followed by another operation called hidden surface removal, which again takes place in the view coordinate space. After that, we perform a transformation from 3D view coordinate system to 2D view coordinate system. This transformation is called projection transformation.
And finally, we perform yet another transformation that is window to view port transformation, where we transfer the content from 2D view coordinate system to device coordinate system. So, all these transformations and operations together constitute the fourth stage, which is called viewing pipeline stage.
And then there is a final state called scan conversion or rendering, which is the fifth stage in this
stage. We render the scene in the device coordinate to an image on the screen coordinate so that transformation takes place in this last and final phase of the pipeline. Among these five stages, today, we will start our discussion on the first stage that is object representation.
As we all know, or probably we can guess, that in a synthesized image where we are performing the synthesis using a computer, we are likely to deal with objects of different shapes and sizes.
And that different shapes and sizes can vary widely. We may deal with tiny snowflakes to create a scene or we may deal with complex characters, animation characters to create a movie or animation and all possible shapes and sizes of objects in between.
Now, as you can understand, a snowflake, for example, is not a simple object, it has an elegant shape and unless we reproduce that elegant shape it will not be able to reproduce a realistic image or scene. So, ideally the snowflakes should not be represented with simple sphere.
Similarly, an animated character needs to be depicted with its associated complexities so that it looks realistic. We should not try to simplify it using say simple polygons or simple geometric shapes.
Now, to generate a scene with all these disparate objects, what we need, we need some way to represent them so that computers can understand and process those objects. And as I said before, any representation will not work. So, we cannot represent a snowflake with a sphere that will reduce the realistic feel of the generated image.
Now, there are two fundamental questions related to object representation; how can we represent different objects with their characteristic complexities, so that those can be rendered realistically in a synthesized environment? So, what it tells us that we need to represent different objects, preserving their inherent complexities so that when they are rendered on the screen, we get the feeling of realism in the synthesized image.
The other question is, how can we have a representation that makes the process of rendering efficient? In other words, can we perform the operations of the different stages of the pipeline in ways that optimize space and time complexities? So, one question deals with creating realistic effects and as we discussed in our introductory lectures, creating realistic effects involves lots of computations and lots of data processing requiring storage.
So, the other fundamental question related to object representation is that we have some computing resources available involving storage and processors. Now, we may want to use very complex representations to create more realistic effect, but whether our available resources will support such representations, which will be used in subsequent stages of the pipeline? That also we need to keep in mind while we are going for a particular representation. So, there is a trade-off; one is realism, one is available resources and we have to balance the tradeoff.
Now, in order to balance this trade off, a plethora of techniques have been developed to represent objects and today we will go through some of those techniques in brief and the details will be discussed in subsequent lectures.
All these techniques we can categorize in broadly four types, first one is point sample representation. Second one is boundary representation. The third one is space partitioning. And the fourth one is sweep representation. So we have a large number of techniques and all these techniques can categorize into four types; point sample, boundary representation, space partitioning, and sweep representation.
Let us see what is, what it is start with the first category point sample representation. To create a 3D scene we can first capture raw data such as color, surface normal and depth information of different points on the scene. How we can capture those? We can use various devices such as 3D range scanner, range finder or using simple camera and computer vision techniques. So, using those devices and techniques, we can capture raw information about a 3D scene, namely the color information or the surface normal information or the depth information at different points in the scene.
Now, since we already got this information, so we do not need to compute them and we can directly render these points on a screen. So, we can process these points subsequently to generate the scene, so here the focus is on capturing the information rather than computing the values, then what is the representation?
The representation is a set of raw data points, for each data point, we have captured some values like color, depth, surface normal, vector. These are its attributes. So, our representation involves the set of data points as well as some attribute values for each, and that is called point sample representation. So, essentially we are representing the 3D scene in terms of points sampled at different locations.
The next one is boundary representation. There are also a set of techniques that represent an object by representing the individual object surfaces. Now these surfaces can be polygonal or curved. For example, see the figure here, here on the left hand side of the figure we see six surfaces. Named A, B, C, D, E and F. Now this surfaces defined the cube shown on the right hand side of the image. So, you are representing the cube, which is an object in terms of these surfaces, which are interlinked rectangles A to F. So, that is boundary representation. So, we are representing the cube in terms of its bounding or boundary surfaces.
There are other techniques in which, we do not represent objects in terms of boundaries. Instead, what we do, we use the 3D space occupied by the object to represent it. Now we divide the space into several disjoint regions, disjoint or non-overlapping regions. Any point inside the object lies in exactly one of the regions, so the division is done in a way such that any point inside the object lies in exactly one of the regions.
So, when we represent objects in this manner. Then we are essentially representing in terms of the space occupied by the object rather than the bounding surfaces, so those techniques where such approaches are used are called space partitioning methods or representations. And such representations are often created in a hierarchical way. That means space occupied by the object is divided into sub-regions. And this division mechanism is applied recursively to each sub-region till we arrive at some predefined size of the sub-region.
Now, these hierarchical representations can be depicted in different ways. A common way is to form a tree or to show the representation in the form of a tree, which is often called space partitioning trees. That is one common way of representing an object in terms of the space occupied by it.
And finally, we have the sweep representation. Now, there are two sweep representation techniques that are widely used in graphics. One is the sweep surface representation and the
the surface of revolution representation.
Let us try to understand the sweep surface representation. In this type of representation 3Dsurfaces are obtained by traversing an entity such as a point, line, polygon or curve along a path in space in a specified manner. For example, look at the figure here we have this rectangle and the rectangle is moved in a specific trajectory. To create this overall object of interest.
So, the object here is this, entire thing created by moving a rectangle along the specified path.
This type of representation where we are not actually representing an object in terms of its bounding surface or the space occupied by it, rather, we are actually representing it in terms of a process where the input is a primitive surface and the path it follows. And we specified the way to traverse that path. That type of representation is called sweep surfaces.

In a similar way there is another representation called surface of revolution, as the name suggests here what we do, we define a 2D entity which rotates around an axis. We also specify the axis.
So then the resulting object is what we are interested in. For example, here again if we consider say the rectangle and this is the path or path of rotation around the x axis, then we get this overall object, which is our desired object.
So, here again, we are not actually specifying the object in terms of its bounding surfaces or the space occupied by it, but in terms of a primitive object, in this case, rectangle and the axis and the direction of revolution. So, this type of representation is known as the surface of revolution.
Now, some of these categories have subcategories as well. For example, boundary representation techniques have three types of sub techniques, one is mesh representation, which is most common. We have parametric representation and the third one is implicit representation.
In case of space partitioning methods there are again several sub techniques, subcategories such as octrees methods, BSP trees, constructive solid geometry or CSG. Now, apart from these broad categories and subcategories, there are some other techniques that do not fall into any of these broad categories, which are categories in itself. They are mainly application specific or complex photorealistic object representation. So, now complex photorealistic object representation indicates that those techniques are used to represent realistic effects in a very complex way.
Let us see a few examples. There is one technique called fractal representation. For example, see this figure of the tree here if you look closely at each branch of the tree, you will see that the overall structure is replicated in each branch. So the whole tree structure is replicated in each branch and within this branch, sub-branches replicate again this tree structure. So, it is a self-repeating structure, which is represented using fractal notations. So fractal representation is one useful representation and in nature we get to see lots of objects that are actually self-repeating, where fractal representation is very useful.
Another advance representation technique is particle system representation, where we try to simulate the actual physics, for example, if we want to create this waterfall in a very realistic way. Then particle system representation would be more appropriate than any other representation we have used so far where we will be able to actually mimic the way this water flows due to gravity and falls from a higher position to lower position and the collisions and how they get dispersed, all these things can be captured using particle system representation.
Third technique is skeletal model representation. If we want to create a character like this, we can represent the character using a skeletal form, which is shown in this left side figure. And the way this skeletal form is defined, so whenever this character moves, the movement of the skeleton is also proportionate. So, kinematic considerations are taken into account while we define a skeletal representation. These are only a few of many such possible representations that are actually used in the generation of a realistic scene.
So, in summary, what we can say is that we have a large number of techniques available to represent 3D objects. Broadly, there are four techniques. One is point sample rendering where instead of artificially trying to create objects shapes, we actually capture some values, namely color, depth, surface normal at different points of a scene and then simply reproduce those on the screen, that is point sample rendering.
Other technique is boundary representation, which has many subcategories like mesh representation, parametric representation and implicit surface representations. In boundary representation techniques we represent objects in terms of its bounding surfaces where these bounding surfaces can be lines, curves, polygons, anything.
The third technique is space partitioning method here, instead of representing an object in terms of its boundary, what we do is we represent the space occupied by this object. And typically, we use some hierarchical representation in the form of trees, which is more popularly called spaced partitioning tree. And there are many subcategories of such representations, namely octree method, BSP method or binary spaced partitioning method, constructive solid geometry method or CSG methods.
The fourth technique is sweep representation, where we do not represent the whole object.
Instead, we represent the objects in terms of a primitive shape and some movement path or the trajectory. There are two such sweep representation techniques available; sweep surface and surface of revolution. One interesting point about this type of representation is that here the representation itself contains an approach rather than objects.
The approach is how to move the primitive surface along a path or around an axis. Now, apart from these broad four categories, there are other representations available which are application-specific, sometimes some specific techniques are also possible, namely scene graphs, skeletal model and advanced modeling, namely fractals or particle systems.
Now, among these categories in subsequent lectures, we will discuss in detail these two categories; boundary representation and space partitioning representation. In the boundary representation techniques, we will discuss all these three subcategories in some detail, whereas in the space partitioning method we will discuss these three subcategories in some detail.
And in boundary representation we will learn about a specific representation technique, namely
the spline representation, which is very popular in representing complex shapes in graphics.
Whatever I have discussed today is just the introduction to object representation techniques, various techniques that are available to represent objects. Next, few lectures will be devoted to the details of these techniques.