Chee Yap
Zoom Visualization
This lecture discuss the issues arising from zooming visualization: it is the simplest form of what is often called visual navigation or walkthru visualization. Walkthru visualization are usually for 3D models. But in 2D which is our focus, so many issues are greatly simplified.
There is a basic mathematical background that is critical in graphics and visualization, called transformations. The topic arises because we have on the one hand, a geometric model M and on the other hand, an image I of this model. Certain ``transformations'' must be performed to convert M to I, based on the current transformation parameters. In 2-D, most of this becomes very simple. A further simplification comes from the fact that we (usually) do not want to rotate our views.
Suppose we are given a very large map M to be visualized in a zoom and pan model. In this lecture, we discuss a model for implementing this in three stages.
First we assume that M has its native coordinate system called world coordinate system. For us, this is basically the LON/LAT coordinate. We also need to convert the LON/LAT into absolute (world) unit of length: if D is the diameter of the earth in meters, then each degree LAT is equal to pD/360 meters. We will use D=12,756.
At the end user, we have a view window which has view size wview×hview in pixels. It has its own view coordinate system, so that a point (x,y) in this window satisfies 0 £ x < wview and 0 £ y < hview. This window has a (current) view position pview which is in world coordinates. Essentially, this says that the origina (0,0) in the view coordinate system represents the point pview in model M. Associated with the view window is also the (current) zoom level which is a number denoted lview. This number is in the units of meters per pixel.
So, the first approximation of our problem is to simply provide a transformation between world coordinates and view window. That is essentially what you did in homework 4. However, this will be inadequate and we will need to introduce intermediate structures between the world and view coordinates. This arise in two ways: from buffering as well as from level-of-detail (LOD) hierarchies in our model.
We discuss transformations only in 2-dimensions. If p=(x,y) is a point, we write (x,y,1) as the standard set of homogeneous coordinates for p. In general, any triple of the form (cx, cy, c) where c ¹ 0 is called a set of homogeneous coordinates for p.
What is a transformation T? It is a mapping between two
coordinate systems. If (x,y) is a point in one coordinate system,
then (x¢,y¢)=T(x,y) is a point in another coordinate system.
The simplest example is translation by a vector t=(tx, ty).
In this case,
| (1) |
|
What about the composition of translation T1 with rotation T2?
In other words, how should we represent the
transformation T12(x,y) = T1(T2(x,y))?
We must now use the homogeneous notation for (x,y) and write (x,y,1)
(or (x,y,1)t as a column vector). Then the
|
Translation and rotation, and their compositions, represents the class of Euclidean transformations: such transformations are characterized by the fact that the preserve lengths and angles, and do not flip the image into an mirror image.
Besides Euclidean transformations, the other transformations
that is very important for us is scaling. Such matrices
are represented by
|
Exercise: Describe the transformation that forms a mirror image of an image.
Exercise: Prove that scaling and translation do not change lengths.
First we assume that M has its native coordinate system called world coordinate system. For us, this is basically the LON/LAT coordinate. We also need to convert the LON/LAT into absolute (world) unit of length: if D is the diameter of the earth in meters, then each degree LAT is equal to pD/360 meters. We will use D=12,756.
Let l be any zoom level. We will partitition the zoom level
into l simplification levels (or, S-level).
Let
| (2) |
|
Next, we assume that there is a buffer whose size is wbuff×hbuff in pixels. The buffer has a (current) position denoted Pbuff (or just P), again in world coordinates and has the same interpretation as pview. The buffer has a (current) simplification level denoted Lbuff. Thus 0 £ Lbuff < l.
In remote visualization systems, we have two major pieces of runtime software: the Server and the Client. The Server holds the data to be visualized and the Client manages the GUI and talks to the server. The major issue we want to address is ``responsiveness''. This is defined to be a properto of our system to act responsively to the changing environment. We address two main issues.
The issue of bandwidth variation already arises in the setting of I/O limited visualization, such as found in traditional WalkThru visualization work. There, the bandwidths are fully reliable but it is generally insufficient to satisfy the user requests. Here, the physical bandwidth does not change, but the bandwidth demand changes. But the end effect from a system view point is rather similar.
In the present design (unlike [1]), the Server is just the Postgresql server. The Client Program has to have all the smarts to achieve a ``responsive system''.
Another issue is that of redundant data - the client does not want to waste bandwidth asking for data it already have. This can be solved at various levels of granularity. At present, we will use a very crude method, which is just based on the bounding box of the buffers.
[Previous Section] [Next Section] Go to Top of Page