Master's Thesis - Studierstube Augmented Reality Project - Graz ...
Master's Thesis - Studierstube Augmented Reality Project - Graz ...
Master's Thesis - Studierstube Augmented Reality Project - Graz ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
5.3 Visualization nodes and subgraphs<br />
Figure 5.11: A double buffered ”Position Texture” stores the current position of each<br />
particle and ”Attribute Texture” the color assigned to a certain velocity or the particle.<br />
The ”Reset Texture” is used if no velocity value has been found of the particle left the<br />
volume or if it exceeded its maximum lifetime. The initial positions which are stored in<br />
this texture are predefined randomly but they can even be arranged so that for example<br />
some kind of streak-line will result. The ”Field Texture” stores the current flow volume<br />
for texture lookup and can be changed during rendering in case of 4D-volumes.<br />
frame via the OpenGL API to the stream processors would cost over 50% of the framerate.<br />
Consequently, they get stored in a display list during the initialization step. Over<br />
all this simple particle effect performes - assuming a buffer-size of 1024x1024, which<br />
refers to over one million particles - with a frame-rate between 100 and 150 frames per<br />
second on the hardware described in section 6.1. The frame rate was evaluated with<br />
an artificial flow dataset.<br />
Listing 5.4: Pseudo shader code for the simplest form of a GPGPU particle system<br />
applicable to a predefined 3D velocity texture.<br />
1 init arbitrary positions in init = reset texture<br />
2 init ages randomly in attribute texture<br />
3<br />
4 [ Fragment shader ] // output : attribute texture<br />
5 uniform attribute_texture ;<br />
6 uniform position_texture ;<br />
7 uniform color_mapping_1D_texture ;<br />
8<br />
9 if age of particle