Lec 5: Introduction and overview on object representation techniques
Summary
TLDRThis lecture delves into the fundamentals of 3D object representation in computer graphics, covering the five stages of the graphics pipeline. It introduces various techniques for rendering realistic scenes, including point sample, boundary, space partitioning, and sweep representations. The lecture also touches on advanced methods like fractals and particle systems, emphasizing the balance between realism and computational resources.
Takeaways
- 📚 The lecture is the fifth in a computer graphics course, focusing on the stages of the 3D graphics pipeline and object representation techniques.
- 🔄 The 3D graphics pipeline consists of five main stages: object representation, modeling transformation, viewing pipeline, and the final rendering stage.
- 📏 Object representation involves defining objects in their local coordinate system before transforming them into the world coordinate system.
- 🌐 Modeling transformation is the process of moving objects from their local coordinates to the world coordinates to form a complete scene.
- 🎨 Color assignment is performed in the world coordinate system, applying colors to the surface points of objects.
- 🔭 The viewing pipeline stage includes a series of transformations and operations such as viewing transformation, clipping, hidden surface removal, projection, and window to viewport transformation.
- 🤖 The lecture emphasizes the importance of choosing the right object representation technique to balance realism and computational efficiency.
- 📈 Object representation techniques are categorized into four types: point sample representation, boundary representation, space partitioning, and sweep representation.
- 🌐 Point sample representation uses captured raw data points with attributes like color and depth to directly render scenes.
- 🏢 Boundary representation defines objects by their surfaces, which can be polygonal or curved, and is further divided into mesh, parametric, and implicit representations.
- 🌳 Space partitioning methods divide the space occupied by an object into disjoint regions, often represented hierarchically using trees like octrees or BSP trees.
- 🛤️ Sweep representation techniques, such as sweep surface and surface of revolution, represent objects based on a primitive shape moved along a path or rotated around an axis.
- 🌟 Advanced representation techniques like fractals, particle systems, and skeletal models are used for complex photorealistic effects in specific applications.
Q & A
What are the five stages of the 3D graphics pipeline?
-The five stages of the 3D graphics pipeline are: 1) Object representation, 2) Modelling transformation, 3) Color assignment, 4) Viewing pipeline, and 5) Scan conversion or rendering.
What is the purpose of the object representation stage in the graphics pipeline?
-The purpose of the object representation stage is to define and represent the objects that will constitute the scene in their local coordinate system.
What is the main task performed during the modelling transformation stage?
-The main task performed during the modelling transformation stage is to transform the objects from their local coordinate system to the world coordinate system, forming a scene in the world coordinate system.
What transformations and operations are included in the viewing pipeline stage?
-The viewing pipeline stage includes transformations from world to view coordinates, clipping, hidden surface removal, projection transformation from 3D to 2D view coordinates, and window to viewport transformation.
What is the importance of color assignment in the graphics pipeline?
-Color assignment is important as it assigns colors to the object surface points in the world coordinate system, which contributes to the visual appearance of the objects in the scene.
How does the scan conversion or rendering stage differ from the other stages in the graphics pipeline?
-The scan conversion or rendering stage differs as it is the final stage where the scene in the device coordinate system is rendered into an image on the screen coordinate, completing the pipeline process.
What are the two fundamental questions related to object representation discussed in the script?
-The two fundamental questions related to object representation are: 1) How to represent different objects with their characteristic complexities realistically? 2) How to have a representation that makes the rendering process efficient, considering available resources?
What are the four broad categories of object representation techniques mentioned in the script?
-The four broad categories of object representation techniques are: 1) Point sample representation, 2) Boundary representation, 3) Space partitioning, and 4) Sweep representation.
What is the concept behind point sample representation?
-Point sample representation involves capturing raw data such as color, surface normal, and depth information of different points on the scene using devices like 3D range scanners or cameras, and then directly rendering these points on the screen.
Can you explain the idea of boundary representation in object representation?
-Boundary representation is a technique where objects are represented by defining their individual surfaces, which can be polygonal or curved. These surfaces, when interconnected, define the shape and structure of the object.
What is space partitioning, and how does it differ from boundary representation?
-Space partitioning is a technique where objects are represented by dividing the 3D space they occupy into disjoint or non-overlapping regions, with each point inside the object lying in exactly one region. This differs from boundary representation, which focuses on the surfaces of the object rather than the space it occupies.
What are the two types of sweep representation techniques mentioned in the script?
-The two types of sweep representation techniques mentioned are: 1) Sweep surface representation, where 3D surfaces are created by moving a primitive shape along a path, and 2) Surface of revolution representation, where a 2D entity is rotated around an axis to create a 3D object.
What are some of the advanced object representation techniques mentioned in the script, and where can one find more information about them?
-Some advanced object representation techniques mentioned are fractal representation, particle system representation, and skeletal model representation. For more information, one can refer to Section 2.5 in the recommended book chapter.
Outlines
📚 Introduction to Computer Graphics Pipeline
This paragraph introduces the topic of computer graphics, specifically the 3D graphics pipeline, which is the core process in rendering 3D scenes. It discusses the historical context, challenges, and applications of computer graphics. The paragraph also outlines the five main stages of the graphics pipeline: object representation, modeling transformation, viewing pipeline, and the final rendering stage. The focus of the lecture will be on the first stage, object representation, which involves representing objects in their local coordinate system before transforming them into the world coordinate system for scene construction.
🎨 The Challenge of Realistic Object Representation
The second paragraph delves into the complexities of representing various shapes and sizes of objects for realistic computer graphics. It emphasizes the importance of not simplifying complex objects like snowflakes or animated characters. The paragraph raises two key questions: how to represent objects with their inherent complexities for realistic rendering, and how to do so efficiently with available computing resources. It introduces a trade-off between realism and resource optimization and mentions four broad categories of representation techniques: point sample, boundary representation, space partitioning, and sweep representation, which will be discussed in subsequent lectures.
🌐 Exploring Object Representation Techniques
This paragraph provides an overview of the different techniques used for object representation in 3D graphics. It explains point sample representation, which involves capturing raw data from a scene and using this data for direct rendering. Boundary representation is discussed next, where objects are defined by their surfaces, which can be polygonal or curved. The paragraph also introduces space partitioning methods, which involve dividing space into regions occupied by objects, often represented hierarchically as trees. Lastly, it touches on sweep representation, where 3D surfaces are created by moving a shape along a path or around an axis.
🌟 Advanced Object Representation Subcategories
The fourth paragraph expands on the subcategories within the main object representation techniques. It explains that boundary representation can be further divided into mesh, parametric, and implicit representations. Space partitioning methods include octrees, BSP trees, and constructive solid geometry (CSG). The paragraph also introduces sweep representation techniques, such as sweep surface and surface of revolution, which involve creating objects by moving a shape along a path or rotating it around an axis. Additionally, it mentions that there are standalone techniques like fractal representation, particle systems, and skeletal models, which are used for complex photorealistic object representation.
🛠️ Application-Specific Representation Techniques
This paragraph discusses application-specific representation techniques that do not fit into the broad categories but are essential for creating realistic effects in complex scenes. It highlights fractal representation for self-repeating structures found in nature, particle system representation for simulating physics in phenomena like waterfalls, and skeletal model representation for animating characters. The paragraph emphasizes the variety of techniques available for representing 3D objects and sets the stage for detailed discussions on boundary and space partitioning representations in future lectures.
📘 Summary and Further Reading on Object Representation
The final paragraph summarizes the lecture on object representation techniques and provides guidance for further reading. It reiterates the four main techniques: point sample rendering, boundary representation, space partitioning, and sweep representation. It also mentions that the next lectures will delve deeper into boundary representation and space partitioning, including spline representation for complex shapes. The paragraph directs interested students to chapter 2, section 2.1 of the provided book for an introduction to the topic and to section 2.5 for advanced methods not covered in the lecture. The lecture concludes with a thank you and an anticipation for the next session.
Mindmap
Keywords
💡3D Graphics Pipeline
💡Object Representation
💡Modelling Transformation
💡Color Assignment
💡Viewing Pipeline Stage
💡Scan Conversion or Rendering
💡Point Sample Representation
💡Boundary Representation
💡Space Partitioning
💡Sweep Representation
💡Fractal Representation
💡Particle System Representation
💡Skeletal Model Representation
Highlights
Introduction to the 3D graphics pipeline and its five stages.
Explanation of object representation in local coordinate systems.
Modeling transformation stage to convert local coordinates to world coordinates.
Color assignment to object surface points in the world coordinate system.
Viewing pipeline stage involving transformations, clipping, and hidden surface removal.
Projection transformation from 3D view to 2D view coordinate system.
Window to viewport transformation in the device coordinate system.
Discussion on the trade-off between realism and available computing resources.
Introduction to point sample representation using raw data capture.
Boundary representation techniques for objects with polygonal or curved surfaces.
Space partitioning methods dividing space into disjoint regions for object representation.
Sweep representation techniques including sweep surface and surface of revolution.
Subcategories of boundary representation: mesh, parametric, and implicit representations.
Space partitioning subcategories: octrees, BSP trees, and constructive solid geometry (CSG).
Advanced representation techniques for complex photorealistic objects.
Fractal representation for self-repeating structures found in nature.
Particle system representation for simulating physics in animations.
Skeletal model representation for character animations with kinematic considerations.
Summary of the various 3D object representation techniques and their applications.
Recommendation to refer to specific chapters for further details on the discussed techniques.
Transcripts
Hello and welcome to lecture number five in the course computer graphics.
So, in the earlier lectures, we got introduced to the field where we discussed about few
things, namely the historical evolution of the field, the issues, the challenges and
applications that are there in the field.
We also got introduced to the basic idea of graphic software, namely the 3D graphics pipeline
and the graphics libraries today will start our discussion on the pipeline stages.
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 trade off.
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.
Third one is space partitioning.
And the fourth one is sweep representation.
So we have a large number of techniques and all these techniques we 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 which are widely used in graphics.
One is the sweep surface representation and the surface of revolution representation.
Let us try to understand the sweep surface representation.
In this type of representation 3D surfaces 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 representations are 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 representations are known as surface of revolution.
Whatever we have discussed so far are the broad categories.
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.
In subsequent lectures, we will go through the subcategories in more details.
Now, apart from these broad categories and subcategories, there are some other techniques
which 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 which are actually used in
generation of 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 modelling, namely fractals or particle systems.
Now, among these categories in subsequent lectures we will discuss in details these
two categories; boundary representation and space partitioning representation.
In the boundary representation techniques, we will discuss all these three subcategories
in some details, 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 object.
Next, few lectures will be devoted to the details of these techniques.
The content of today's lecture can be found in this book.
You can have a look at chapter 2, section 2.1.
For the introduction part, however, as I said, there are some advanced methods available
for representing objects, which you will not find in this section.
Instead, you may have a look at Section 2.5.
Although these advanced techniques we will not discuss any further details.
If you are interested, you may have a look at this section.
So, that is all for today.
Thank you.
And see you in the next lecture.
Goodbye.
浏览更多相关视频
(Unit 0) Intro 1: Rendering
Intro to Graphics 01 - Introduction
Beginner Blender 4.0 Tutorial - Part 5: Shading
ECAP268 - U01L04 - Fixed point and floating point representation
CPU, Pipeline & Vector Processing, Input-Output Organization | Computer System Architecture UGC NET
How does Ray Tracing Work in Video Games and Movies?
5.0 / 5 (0 votes)