10.11.2014 Views

Master's Thesis - Studierstube Augmented Reality Project - Graz ...

Master's Thesis - Studierstube Augmented Reality Project - Graz ...

Master's Thesis - Studierstube Augmented Reality Project - Graz ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.3 Visualization nodes and subgraphs<br />

67 // End of vertex shader<br />

Such an efficient particle effect can be easily applied for the visualization of streak<br />

lines and time lines as they are described in section 2.1.1.2 in chapter 2. The only<br />

things to modify would be in the first case the initialization of the initial positions to<br />

evenly spaced seed points placed within a plane or line and in the latter case the initial<br />

ages in the attribute textures so that all particles are always being released at the same<br />

time.<br />

5.3.3.3 Stream lines<br />

Streamlines show - as described in section 2.1.1.2 in chapter 2 - the trajectories of a<br />

particle influenced by a static velocity field. Consequently these lines are only valid for<br />

one separate temporal volume and will completely change when changing to another<br />

field in time. However, local structures of the flow may be explored very well by these<br />

lines.<br />

Two approaches have been implemented to calculate particle trajectories. First a<br />

single pass shader was evaluated which subsequently updates to the lines in the first<br />

render pass with a for-loop. Since only with the GeForce 8x Series, a shader may be<br />

used recursively in one render pass with its output as input. This solution was chosen to<br />

guarantee a compatibility to reference systems as defined in section 6.1. The one-pass<br />

implementation on other architectures is extremely inefficient for dynamic manipulation<br />

of the scene due to a necessary recalculation of already calculated positions. In this case<br />

the access to the output texture is not possible in one pass! However, this rudimentary<br />

algorithm is not suitable for a dynamic definition of the seed region, for example by<br />

a dragger since every (complete) recalculation of the trajectory texture takes about<br />

one second up to 5 seconds. Nevertheless, this approach is for randomly but fixed<br />

distributed seed points in the volume as feasible as the multi-pass approach.<br />

Due the focus on interactive usable flow visualization, the further line based algorithms<br />

uses a multi-pass algorithm.<br />

The multi-pass approach utilizes a double buffered texture for the calculation of<br />

results and a vertex displacement for the actual line rendering. The main differences<br />

are that in the sample points position texture each column corresponds to the supporting<br />

points of one line and that the displaced vertices in the vertex list belong to<br />

line strips 1 . Consequently, a position initialization texture would be reduced to one<br />

dimension defining the first row of a vertex position texture. Considering that not all<br />

lines will be of an equal length and that some parts of the supporting position texture<br />

will remain empty, several other memory management approaches for exploiting the<br />

available texture memory have been considered. Finally the simplest approach was<br />

used because of the fact that each other, even texture reorganizing algorithms need as<br />

much time for the memory management as the calculation itself. Additionally, the used<br />

GF 8x architecture provides plenty of texture memory, so the position texture can be<br />

1 in OpenGL: GL LINE ST RIP vertex order.<br />

106

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!