YARCA (Yet Another Raycasting Application) Project

Post on 11-May-2015

305 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

The scope of this project is to extend NASA’s World Wind to make it possible to visualize ray casting not only in intersection with the terrain, but also to consider 3D objects, which we call barriers, that will be hit by rays emitted by other objects which we call transmitters, calculating the coverage area and field of view of the transmitters and showing how the transmission signal is reflected onto the objects’ surfaces.

Transcript

YARCAYET ANOTHER RAYCASTING APPLICATION

Michele Pilloni

Elda Paja

Davide Mottin

PROJECT REPORT FOR

COMPUTER GRAPHICS COURSE

PROBLEM STATEMENT

The scope of this project is to extend NASA’s World Wind to perform ray casting both on the

surface of the world and on arbitrary 3D objects.

YARCA ENVIRONMENT

SYSTEM ARCHITECTURE

RAY CASTING

Ray casting on the terrain

Ray casting on arbitrary 3D objects

RAY CASTING ON THE TERRAIN

Transmitters

Ray Casting Technique

Ray Casting with barriers

Groups of transmitters

TRANSMITTERS

3D model objects of two types: Antennas BulbsThey support different types of signals (i.e. linear,

Gaussian, etc…)

To manage transmitters, associate: A sector, as big as the coverage area of their

signals A matrix which is mapped to the sector A sector image to represent the coverage area of

the transmitter The color of the image will vary in compliance with the

values of the matrix

RAY CASTING TECHNIQUE

RAY CASTING ALGORITHM

RAY CASTING ALGORITHM

GROUPS OF TRANSMITTERS

We can put more than one transmitter on the terrain.

Different types of transmitters transmit different types of signals

In case we have signals of the same type that are within the coverage area of one another, they intersect.

Except for the intersection, the resultant transmission is also computed and this is shown graphically using a more intensive color.

On the other hand, signals of different types cannot intersect with one another, even if they were close together.

o The values of the resulting matrix containing all the given matrices will be calculated as:

GROUPS OF TRANSMITTERS: MATRIX COMPUTATION

o We focus our attention in the intersection area:

GROUPS OF TRANSMITTERS: MATRIX COMPUTATION

1. Compare t1 with t2. If they intersect, compute resulting matrices

setting the resulting value in the intersection part for t1 and 0 in that of t2.

o Computation is performed on pairs of matrices:

2. Repeat step 1 with ti for i = 1 … n

3. Repeat comparing ti for i = 2 … n and ti+j for j = 3 … n, until no comparisons are needed

4. Compute images starting by the matrices

GROUPS OF TRANSMITTERS: MATRIX COMPUTATION

WHY GROUPING TRANSMITTERS?

The main problem of casting each image individually was that the borders were not so well defined, mainly because world wind performs some operations, to improve the quality of the textures such as Gaussian filtering.

This kind of indexing and grouping offers great flexibility when moving, adding, removing, or stopping a transmitter, updating the current view accordingly, coming out with an high quality texture

RAY CASTING ON 3D OBJECTS

Barrier Layer

Compute texture

Texture mapping

Multipass Texture Mapping

BARRIERS

Barrier is an object containing:

a sector for the extent of the object base that is a world wind object, and

the barrier itself that is a Model to render a 3D object using openGL primitives.

BARRIERS

Directionable Barriers

bounding box as a sphere can distinguish which of their faces are

illuminated by the transmission and which are in shadow

can determine which is the nearest point to the transmission center define the near plane

COMPUTE TEXTURE

o To perform ray casting on the object surface the transmitter needs to know for each barrier b:

At what distance b is positioned

For each point of the base sector of b, the maximal height to which the transmission can reach

Whether there are other barriers that can hide totally or partially the transmission on b.

COMPUTATION OF THE DISTANCE FROM THE TRANSMITTER TO THE BARRIER:

Set the frustum, defining the eye position, the eye direction, which is from the transmitter

to the centroid of the barrier, the up vector, and the near clipping distance.

MAXIMAL HEIGHT TO WHICH THE TRANSMISSION CAN REACH

Split the cone of transmission into an infinite number of circles

Choose one of this circles and assign it a color

Looking at the direction and position where the barrier is supposed to be prospectively through this circle we can see the extension of the transmission for that particular perspective

Save such information in what we call a “stencil” buffer, that is color buffer used as a mask and is represented by the selected circle

All the values of the stencil buffer that do not coincide with the given color of the selected circle, are considered to be out of the transmission area, as they are higher than the maximum transmission height

RAY CASTING ON BARRIERSALGORITHM

For each Transmitter For each Barrier with center ≤ transmission radius

1. set the frustum based on the bounding box

2. calculate the “stencil buffer” and save it

3. clean the color buffer

4. calculate depth buffer and save it

5. disable depth test so that nothing is overwritten in the depth buffer

6. render other barriers starting from the most distant, in order to know whether there are other barriers in front of the one that is being considered and read values from the color buffer.

7. Calculate the texture by combining the information taken from the three buffers.

Textures are images that are mapped in a 3D world In our case, textures are images representing the

transmission area

To perform the texture mapping we need to map texture coordinates to vertices of the object that define the face where the texture will be mapped Generate texture coordinates Automatically using glTexGen. Determine the positioning of the different

sides/faces of the object wrt the transmitter.

TEXTURE MAPPING

DETERMINE THE POSITIONING OF THE OBJECT FACES

Consider the normal vector of each face of the object and compute the scalar product between such vector and the vector of eye direction:

If the product is positive, it means that the angle between the two vectors is less than 90°, and texturing should be enabled.

Otherwise, if the product is negative, the angle is greater than 90°, and texturing should be disabled.

MULTIPASS TEXTURE MAPPING

For every barrier that has to be rendered and has a texture on it:

If the barrier has not been rendered before, draw it normally and map the texture on it;

If the barrier has been already rendered, draw a fully transparent barrier over it with only the texture visible: Blending technique is used.

MULTIPASS TEXTURE MAPPING

Multi Passing Scheme

FUTURE WORK

Further improvements

Increase computation velocity

Achieve better precision

Consider barriers of other shapes and dimensions

Consider flying objects

Adaption to the latest version of the world wind framework

CONCLUSIONS

The developed system solves problems regarding ray casting in world wind environment

It has a modular architecture that allows great expendability

The two proposed techniques are different approaches to this problem

top related