summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Smoke/Week 2.suobin87552 -> 87552 bytes
-rw-r--r--Smoke/renderer_gl.c2
-rw-r--r--Smoke/report/2IV35-Report.log126
-rw-r--r--Smoke/report/2IV35-Report.pdfbin855426 -> 1072199 bytes
-rw-r--r--Smoke/report/2IV35-Report.toc16
-rw-r--r--Smoke/report/chapter1.tex6
-rw-r--r--Smoke/report/chapter5.tex20
-rw-r--r--Smoke/report/chapter6.tex22
-rw-r--r--Smoke/report/chapter7.aux2
-rw-r--r--Smoke/report/chapter7.tex55
-rw-r--r--Smoke/report/chapter8.aux4
-rw-r--r--Smoke/report/chapter8.tex13
-rw-r--r--Smoke/report/chapter9.aux8
-rw-r--r--Smoke/report/divergence.PNGbin0 -> 108998 bytes
-rw-r--r--Smoke/report/glyphs.pngbin40292 -> 40957 bytes
-rw-r--r--Smoke/report/glyphs2.pngbin71680 -> 91194 bytes
-rw-r--r--Smoke/report/height_plot.pngbin308953 -> 134103 bytes
-rw-r--r--Smoke/report/height_plot2.pngbin152579 -> 149647 bytes
-rw-r--r--Smoke/report/isolines.PNGbin49604 -> 51906 bytes
-rw-r--r--Smoke/report/streamtubes.PNGbin0 -> 94992 bytes
-rw-r--r--Smoke/report/volume.PNGbin0 -> 233390 bytes
-rw-r--r--Smoke/report/wilrik.pngbin205975 -> 206931 bytes
22 files changed, 159 insertions, 115 deletions
diff --git a/Smoke/Week 2.suo b/Smoke/Week 2.suo
index 96d77fb..83dfb45 100644
--- a/Smoke/Week 2.suo
+++ b/Smoke/Week 2.suo
Binary files differ
diff --git a/Smoke/renderer_gl.c b/Smoke/renderer_gl.c
index a6ab0c8..613307f 100644
--- a/Smoke/renderer_gl.c
+++ b/Smoke/renderer_gl.c
@@ -299,7 +299,7 @@ static void render_normals(void)
glVertex3f(px, py, pz);
glVertex3f(px +(normal[idx].x * NORMAL_SCALE),
py +(normal[idx].y * NORMAL_SCALE),
- pz +(normal[idx].z * NORMAL_SCALE));
+ pz +(normal[idx].z * NORMAL_SCALE * 16));
}
}
glEnable(GL_LIGHTING);
diff --git a/Smoke/report/2IV35-Report.log b/Smoke/report/2IV35-Report.log
index 676dd4e..9ae0b4e 100644
--- a/Smoke/report/2IV35-Report.log
+++ b/Smoke/report/2IV35-Report.log
@@ -1,4 +1,4 @@
-This is pdfeTeX, Version 3.141592-1.21a-2.2 (MiKTeX 2.4) (preloaded format=latex 2007.9.5) 11 JAN 2008 01:59
+This is pdfeTeX, Version 3.141592-1.21a-2.2 (MiKTeX 2.4) (preloaded format=latex 2007.9.5) 11 JAN 2008 04:03
entering extended mode
**2IV35-Report.tex
(2IV35-Report.tex
@@ -210,7 +210,7 @@ Underfull \hbox (badness 10000) in paragraph at lines 3--4
<practical.png, id=20, 569.12625pt x 423.5825pt>
File: practical.png Graphic file (type png)
<use practical.png>
-Underfull \hbox (badness 10000) in paragraph at lines 10--11
+Underfull \hbox (badness 10000) in paragraph at lines 10--12
[]
@@ -219,17 +219,17 @@ Underfull \hbox (badness 10000) in paragraph at lines 10--11
<practical.png>]
-Underfull \hbox (badness 10000) in paragraph at lines 12--13
+Underfull \hbox (badness 10000) in paragraph at lines 13--15
[]
-Underfull \hbox (badness 10000) in paragraph at lines 14--16
+Underfull \hbox (badness 10000) in paragraph at lines 16--18
[]
)
-Underfull \hbox (badness 10000) in paragraph at lines 17--19
+Underfull \hbox (badness 10000) in paragraph at lines 19--19
[]
@@ -331,7 +331,7 @@ Underfull \hbox (badness 10000) in paragraph at lines 7--8
[]
-<glyphs.png, id=54, 819.06pt x 629.35126pt>
+<glyphs.png, id=54, 847.165pt x 629.35126pt>
File: glyphs.png Graphic file (type png)
<use glyphs.png>
Underfull \hbox (badness 10000) in paragraph at lines 14--15
@@ -393,22 +393,22 @@ Underfull \hbox (badness 10000) in paragraph at lines 53--54
) [13] (chapter5.tex
Chapter 5.
-Underfull \hbox (badness 10000) in paragraph at lines 3--4
+Underfull \hbox (badness 10000) in paragraph at lines 3--5
[]
-Underfull \hbox (badness 10000) in paragraph at lines 7--8
+Underfull \hbox (badness 10000) in paragraph at lines 8--10
[]
-Underfull \hbox (badness 10000) in paragraph at lines 16--17
+Underfull \hbox (badness 10000) in paragraph at lines 18--20
[]
-Underfull \hbox (badness 10000) in paragraph at lines 18--19
+Underfull \hbox (badness 10000) in paragraph at lines 21--23
[]
@@ -416,30 +416,32 @@ Underfull \hbox (badness 10000) in paragraph at lines 18--19
-])
-Underfull \hbox (badness 10000) in paragraph at lines 22--23
+]
+Underfull \hbox (badness 10000) in paragraph at lines 26--28
[]
-[15] (chapter6.tex
+<divergence.png, id=87, 847.165pt x 629.35126pt>
+File: divergence.png Graphic file (type png)
+ <use divergence.png>) [15 <divergence.png>] (chapter6.tex
Chapter 6.
-Underfull \hbox (badness 10000) in paragraph at lines 3--5
+Underfull \hbox (badness 10000) in paragraph at lines 3--4
[]
-Underfull \hbox (badness 10000) in paragraph at lines 8--10
+Underfull \hbox (badness 10000) in paragraph at lines 7--8
[]
-Underfull \hbox (badness 10000) in paragraph at lines 11--12
+Underfull \hbox (badness 10000) in paragraph at lines 9--10
[]
-Underfull \hbox (badness 10000) in paragraph at lines 15--16
+Underfull \hbox (badness 10000) in paragraph at lines 13--14
[]
@@ -448,33 +450,33 @@ Underfull \hbox (badness 10000) in paragraph at lines 15--16
]
-Underfull \hbox (badness 10000) in paragraph at lines 29--32
+Underfull \hbox (badness 10000) in paragraph at lines 27--30
[]
-<isolines.png, id=93, 847.165pt x 629.35126pt>
+<isolines.png, id=94, 847.165pt x 629.35126pt>
File: isolines.png Graphic file (type png)
<use isolines.png>
-Underfull \hbox (badness 10000) in paragraph at lines 38--40
+Underfull \hbox (badness 10000) in paragraph at lines 36--38
[]
-<marching.png, id=94, 588.1975pt x 216.81pt>
+<marching.png, id=95, 588.1975pt x 216.81pt>
File: marching.png Graphic file (type png)
<use marching.png> [17 <isolines.png>]
-Underfull \hbox (badness 10000) in paragraph at lines 46--49
+Underfull \hbox (badness 10000) in paragraph at lines 44--45
[]
-Underfull \hbox (badness 10000) in paragraph at lines 50--51
+Underfull \hbox (badness 10000) in paragraph at lines 46--47
[]
-<ambiguous.png, id=98, 475.7775pt x 280.04625pt>
+<ambiguous.png, id=99, 475.7775pt x 280.04625pt>
File: ambiguous.png Graphic file (type png)
<use ambiguous.png>)
-Underfull \hbox (badness 10000) in paragraph at lines 59--24
+Underfull \hbox (badness 10000) in paragraph at lines 55--24
[]
@@ -491,17 +493,12 @@ Underfull \hbox (badness 10000) in paragraph at lines 7--10
[]
-Underfull \hbox (badness 10000) in paragraph at lines 11--13
+Underfull \hbox (badness 10000) in paragraph at lines 11--15
[]
-Underfull \hbox (badness 10000) in paragraph at lines 16--18
-
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 19--21
+Underfull \hbox (badness 10000) in paragraph at lines 18--20
[]
@@ -509,68 +506,63 @@ Underfull \hbox (badness 10000) in paragraph at lines 19--21
-]
-Underfull \hbox (badness 10000) in paragraph at lines 22--24
-
- []
-
-<height_plot.png, id=111, 847.165pt x 629.35126pt>
+] <height_plot.png, id=112, 847.165pt x 629.35126pt>
File: height_plot.png Graphic file (type png)
<use height_plot.png>
-Underfull \hbox (badness 10000) in paragraph at lines 30--33
+Underfull \hbox (badness 10000) in paragraph at lines 33--36
[]
-Underfull \hbox (badness 10000) in paragraph at lines 34--36
+Underfull \hbox (badness 10000) in paragraph at lines 37--39
[]
-<height_plot2.png, id=112, 847.165pt x 629.35126pt>
+<height_plot2.png, id=113, 847.165pt x 629.35126pt>
File: height_plot2.png Graphic file (type png)
<use height_plot2.png>
[21 <height_plot.png>]
-Underfull \hbox (badness 10000) in paragraph at lines 44--47
+Underfull \hbox (badness 10000) in paragraph at lines 47--50
[]
-Underfull \hbox (badness 10000) in paragraph at lines 48--50
+Underfull \hbox (badness 10000) in paragraph at lines 51--53
[]
-Underfull \hbox (badness 10000) in paragraph at lines 53--54
+Underfull \hbox (badness 10000) in paragraph at lines 56--57
[]
-Underfull \hbox (badness 10000) in paragraph at lines 57--59
+Underfull \hbox (badness 10000) in paragraph at lines 60--62
[]
[22 <height_plot2.png>]
-Underfull \hbox (badness 10000) in paragraph at lines 60--62
+Underfull \hbox (badness 10000) in paragraph at lines 63--65
[]
-Underfull \hbox (badness 10000) in paragraph at lines 65--67
+Underfull \hbox (badness 10000) in paragraph at lines 68--70
[]
-Underfull \hbox (badness 10000) in paragraph at lines 68--69
+Underfull \hbox (badness 10000) in paragraph at lines 71--73
[]
-Underfull \hbox (badness 10000) in paragraph at lines 72--75
+Underfull \hbox (badness 10000) in paragraph at lines 76--79
[]
)
-Underfull \hbox (badness 10000) in paragraph at lines 76--25
+Underfull \hbox (badness 10000) in paragraph at lines 80--25
[]
@@ -605,17 +597,21 @@ Underfull \hbox (badness 10000) in paragraph at lines 20--22
-]
-Underfull \hbox (badness 10000) in paragraph at lines 23--24
+] <streamtubes.png, id=127, 847.165pt x 629.35126pt>
+File: streamtubes.png Graphic file (type png)
+ <use streamtubes.png>
+Underfull \hbox (badness 10000) in paragraph at lines 28--30
[]
-)
-Underfull \hbox (badness 10000) in paragraph at lines 27--26
+<volume.png, id=128, 847.165pt x 629.35126pt>
+File: volume.png Graphic file (type png)
+ <use volume.png> [25 <streamtubes.png>])
+Underfull \hbox (badness 10000) in paragraph at lines 38--26
[]
-[25] (chapter9.tex
+[26 <volume.png>] (chapter9.tex
Chapter 9.
Underfull \hbox (badness 10000) in paragraph at lines 3--5
@@ -647,7 +643,7 @@ Underfull \hbox (badness 10000) in paragraph at lines 22--24
[]
-[26
+[27
@@ -661,7 +657,7 @@ Underfull \hbox (badness 10000) in paragraph at lines 28--27
[]
-[27] (chapter10.tex
+[28] (chapter10.tex
Chapter 10.
Underfull \hbox (badness 10000) in paragraph at lines 3--4
@@ -703,7 +699,7 @@ Underfull \hbox (badness 10000) in paragraph at lines 25--27
[]
-[28
+[29
@@ -722,21 +718,21 @@ Underfull \hbox (badness 10000) in paragraph at lines 36--28
[]
-[29] (2IV35-Report.aux (toc.aux) (chapter1.aux) (chapter2.aux) (chapter3.aux)
+[30] (2IV35-Report.aux (toc.aux) (chapter1.aux) (chapter2.aux) (chapter3.aux)
(chapter4.aux) (chapter5.aux) (chapter6.aux) (chapter7.aux) (chapter8.aux)
(chapter9.aux) (chapter10.aux)) )
Here is how much of TeX's memory you used:
- 2113 strings out of 95490
- 22922 string characters out of 1188952
+ 2131 strings out of 95490
+ 23186 string characters out of 1188952
75550 words of memory out of 1076186
- 4887 multiletter control sequences out of 60000
+ 4899 multiletter control sequences out of 60000
13870 words of font info for 54 fonts, out of 500000 for 1000
54 hyphenation exceptions out of 4999
27i,6n,22p,573b,203s stack positions out of 1500i,500n,5000p,200000b,32768s
PDF statistics:
- 140 PDF objects out of 300000
+ 147 PDF objects out of 300000
0 named destinations out of 300000
- 51 words of extra memory for PDF output out of 65536
+ 66 words of extra memory for PDF output out of 65536
<C:\MiKTeX\texmf\fonts\type1\bluesky\cm\cmmi8.
pfb><C:\MiKTeX\texmf\fonts\type1\bluesky\cm\cmsy8.pfb><C:\MiKTeX\texmf\fonts\ty
pe1\bluesky\cm\cmr8.pfb><C:\MiKTeX\texmf\fonts\type1\bluesky\cm\cmex10.pfb><C:\
@@ -745,4 +741,4 @@ esky\cm\cmtt12.pfb><C:\MiKTeX\texmf\fonts\type1\bluesky\cm\cmsy10.pfb><C:\MiKTe
X\texmf\fonts\type1\bluesky\cm\cmmi12.pfb><C:\MiKTeX\texmf\fonts\type1\bluesky\
cm\cmbx12.pfb><C:\MiKTeX\texmf\fonts\type1\bluesky\cm\cmr12.pfb><C:\MiKTeX\texm
f\fonts\type1\bluesky\cm\cmr17.pfb>
-Output written on 2IV35-Report.pdf (30 pages, 855426 bytes).
+Output written on 2IV35-Report.pdf (31 pages, 1072199 bytes).
diff --git a/Smoke/report/2IV35-Report.pdf b/Smoke/report/2IV35-Report.pdf
index 09e9680..dfa7181 100644
--- a/Smoke/report/2IV35-Report.pdf
+++ b/Smoke/report/2IV35-Report.pdf
Binary files differ
diff --git a/Smoke/report/2IV35-Report.toc b/Smoke/report/2IV35-Report.toc
index 1643870..afd6593 100644
--- a/Smoke/report/2IV35-Report.toc
+++ b/Smoke/report/2IV35-Report.toc
@@ -26,14 +26,14 @@
\contentsline {section}{\numberline {7.3}Difficulties}{22}
\contentsline {subsection}{\numberline {7.3.1}Rotation}{23}
\contentsline {subsection}{\numberline {7.3.2}Height strips}{23}
-\contentsline {subsection}{\numberline {7.3.3}Calculating the normal}{23}
+\contentsline {subsection}{\numberline {7.3.3}Calculating the normal vector}{23}
\contentsline {chapter}{\numberline {8}Streamtubes}{24}
\contentsline {section}{\numberline {8.1}Description}{24}
\contentsline {section}{\numberline {8.2}Implementation}{24}
-\contentsline {section}{\numberline {8.3}Difficulties}{25}
-\contentsline {chapter}{\numberline {9}Conclusion}{26}
-\contentsline {section}{\numberline {9.1}Visualization}{26}
-\contentsline {section}{\numberline {9.2}The course}{27}
-\contentsline {chapter}{\numberline {10}Functionality}{28}
-\contentsline {section}{\numberline {10.1}Simulation}{28}
-\contentsline {section}{\numberline {10.2}Camera position}{29}
+\contentsline {section}{\numberline {8.3}Difficulties}{26}
+\contentsline {chapter}{\numberline {9}Conclusion}{27}
+\contentsline {section}{\numberline {9.1}Visualization}{27}
+\contentsline {section}{\numberline {9.2}The course}{28}
+\contentsline {chapter}{\numberline {10}Functionality}{29}
+\contentsline {section}{\numberline {10.1}Simulation}{29}
+\contentsline {section}{\numberline {10.2}Camera position}{30}
diff --git a/Smoke/report/chapter1.tex b/Smoke/report/chapter1.tex
index 4bf07d2..192f53b 100644
--- a/Smoke/report/chapter1.tex
+++ b/Smoke/report/chapter1.tex
@@ -7,9 +7,11 @@ The visualization course focuses on techniques and algorithms used to visualize
Figure 1: Practical Assignment \\
\end {center}
-The above figure illustrates the different assignments. After step 3 there were two different paths to continue the practical assignment. As one had to be chosen we chose to take the left branch of the figure which, amongst others, involved implementing isosurfaces and height plots. \\
+The above figure illustrates the different assignments. After step 3 there were two different paths to continue the practical assignment. As one had to be chosen we
+chose to take the left branch of the figure which, amongst others, involved implementing isosurfaces and height plots. \\
-Every chapter in this report discusses a particular objective from the practical assignment. The next chapter will briefly talk about the skeleton program supplied and how we adapted the code to be able to add functionality. Chapter 3 will discuss the color mapping, chapter 4 is about glyphs and so on. \\
+Every chapter in this report discusses a particular objective from the practical assignment. The next chapter will briefly talk about the skeleton program supplied
+and how we adapted the code to be able to add functionality. Chapter 3 will discuss the color mapping, chapter 4 is about glyphs and so on. \\
We will discuss a few subjects for each practical assignment. Each chapter gives a short description of each technique with a couple of screenshots, it talks about
how we implemented the technique and what problems we encountered if any. \\
diff --git a/Smoke/report/chapter5.tex b/Smoke/report/chapter5.tex
index 03aab98..fc97c47 100644
--- a/Smoke/report/chapter5.tex
+++ b/Smoke/report/chapter5.tex
@@ -1,10 +1,12 @@
\chapter{Divergence}
-After implementing the glyphs it was time for the divergence. This is a value which can be calculated using the already known value at each vertex and that of its neighbors. \\
+After implementing the glyphs it was time for the divergence. This is a value which can be calculated using the already known value at each vertex and that of its
+neighbors. \\
\section{Description}
-Divergence shows the amount of mass which is compressed or expanded. If mass enters the field at some point, called a source point, then that point will have a positive divergence value. If mass exits the field at some point, called a sink point, then that point will have a negative divergence value. \\
+Divergence shows the amount of mass which is compressed or expanded. If mass enters the field at some point, called a source point, then that point will have a
+positive divergence value. If mass exits the field at some point, called a sink point, then that point will have a negative divergence value. \\
\section{Implementation}
@@ -13,10 +15,18 @@ The calculation of the divergence is rather trivial. For the divergence of the v
$$ \nabla \cdot v = \frac{\partial v}{\partial x} + \frac{\partial v}{\partial y} = $$
$$ \frac{v_x(i + 1, j) - v_x(i, j)}{cell_x} + \frac{v_y(i + 1, j) - v_y(i, j)}{cell_y}$$
-Where $ v_x(i, j) $ is the x-value at the gridpoint (i, j) and similar for the y-value. The $ cell_x $ and $ cell_y $ are the width and height of the cell. The same method is used for the force field. \\
+Where $ v_x(i, j) $ is the x-value at the gridpoint (i, j) and similar for the y-value. The $ cell_x $ and $ cell_y $ are the width and height of the cell. The same
+method is used for the force field. \\
-The definition of the divergence says high values should appear where matter is injected and low values where matter exits the field. This means high values should appear in front of the mouse while dragging with low values behind it. \\
+The definition of the divergence says high values should appear where matter is injected and low values where matter exits the field. This means high values should
+appear in front of the mouse while dragging with low values behind it. \\
\section{Difficulties}
-Although divergence is clearly defined, it is rather difficult to verify it using the simulation. This is a know difficulty. Divergence can however be verified by setting up a test environment where the outcome of the divergence should be obvious. For instance create one source and one sink point. \\
+Although divergence is clearly defined, it is rather difficult to verify it using the simulation. This is a know difficulty. Divergence can however be verified by
+setting up a test environment where the outcome of the divergence should be obvious. For instance create one source and one sink point. \\
+
+\begin {center}
+ \includegraphics[width=100mm]{divergence.png} \\
+ Figure 6: Velocity divergence \\
+\end {center}
diff --git a/Smoke/report/chapter6.tex b/Smoke/report/chapter6.tex
index 2777a08..cca927c 100644
--- a/Smoke/report/chapter6.tex
+++ b/Smoke/report/chapter6.tex
@@ -24,30 +24,34 @@ The algorithm that implements the isolines follows a structured pattern. In pseu
\} \\
\end{tabbing}
-The algorithm passes through every cell and then checks the four cell vertices \{$ v_0 $, $ v_1 $, $ v_2 $, $ v_3 $\} of that cell. Each vertex has it's own value. With that value, the algorithm can check if a vertex is inside ($ v_j \geq threshold $) or outside ($ v_j < threshold $) the isosurface. The inside/outside state is then stored. \\
+The algorithm passes through every cell and then checks the four cell vertices \{$ v_0 $, $ v_1 $, $ v_2 $, $ v_3 $\} of that cell. Each vertex has it's own value.
+With that value, the algorithm can check if a vertex is inside ($ v_j \geq threshold $) or outside ($ v_j < threshold $) the isosurface. The inside/outside state is
+then stored. \\
\begin {center}
\includegraphics[width=\textwidth]{isolines.png} \\
- Figure 6: Three fire-like colored isolines on a blue grid \\
+ Figure 7: Fire-like isolines on a blue grid \\
\end {center}
-If a vertex, $ v_0 $ is inside the isosurface, $ v_0 $ is set to 1, else it's left to 0. This is done for all four vertices which results in a 4-bit status.
-This means there are in total 16 different cases in which the isoline can run through a cell. \\
+If a vertex, $ v_0 $ is inside the isosurface, $ v_0 $ is set to 1, else it's left to 0. This is done for all four vertices which results in a 4-bit status. This
+means there are in total 16 different cases in which the isoline can run through a cell. \\
\begin {center}
\includegraphics[width=\textwidth]{marching.png} \\
- Figure 7: The 16 marching square cases \\
+ Figure 8: The 16 marching square cases \\
\end {center}
-Above the image (figure 7) shows the 16 different cases of the marching squares algorithm. A white vertex indicates that the vertex is outside the isosurface and black indicates it is inside the isosurface. Every inside or outside case has its counterpart. Since some cases are equal, they can be reduced to 8. In case 0 and 15 for example, no lines have to be rendered, yet they are both different cases. \\
+Above the image (figure 8) shows the 16 different cases of the marching squares algorithm. A white vertex indicates that the vertex is outside the isosurface and black indicates it is inside the isosurface. Every inside or outside case has its counterpart. Since some cases are equal, they can be reduced to 8. In case 0 and 15 for example, no lines have to be rendered, yet they are both different cases. \\
-Cases 5 and 10 are also both ambiguous cases as becomes clear from the next image (figure 8). \\
+Cases 5 and 10 are also both ambiguous cases as becomes clear from the next image (figure 9). \\
\begin {center}
\includegraphics[width=100mm]{ambiguous.png} \\
- Figure 8: Two ambiguous cases in the marching squares algorithm \\
+ Figure 9: Two ambiguous cases in the marching squares algorithm \\
\end {center}
\section{Difficulties}
-The contouring algorithm is very simple to implement following the instructions of this previous method. Initially the contour was not very smooth. It was jaggy and had sharp edges everywhere. There was no smooth curve in the contours anywhere. The problem laid within the intersection with the isovalue. After reverting to this method, rather then something self-constructed, the isolines where nice and smooth. \\
+The contouring algorithm is very simple to implement following the instructions of this previous method. Initially the contour was not very smooth. It was jaggy and
+had sharp edges everywhere. There was no smooth curve in the contours anywhere. The problem laid within the intersection with the isovalue. After reverting to this
+method, rather then something self-constructed, the isolines where nice and smooth. \\
diff --git a/Smoke/report/chapter7.aux b/Smoke/report/chapter7.aux
index 9406efd..a3f84d5 100644
--- a/Smoke/report/chapter7.aux
+++ b/Smoke/report/chapter7.aux
@@ -8,7 +8,7 @@
\@writefile{toc}{\contentsline {section}{\numberline {7.3}Difficulties}{22}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.1}Rotation}{23}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.2}Height strips}{23}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.3}Calculating the normal}{23}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {7.3.3}Calculating the normal vector}{23}}
\@setckpt{chapter7}{
\setcounter{page}{24}
\setcounter{equation}{0}
diff --git a/Smoke/report/chapter7.tex b/Smoke/report/chapter7.tex
index 0a3225e..58412e5 100644
--- a/Smoke/report/chapter7.tex
+++ b/Smoke/report/chapter7.tex
@@ -4,37 +4,52 @@ Height plots are a very neat visualization technique. What are height plots, wha
\section{Description}
-All the previous discussed methods are implemented on a 2D grid. But sometimes it's also useful to see the value not by its color but by the height of the surface. This is exactly what a height plot does, it maps the values onto the Z-axis. Since the simulation uses a top down view, not much can be seen. Even with lightening and shadows it still left to be desired. \\
+All the previous discussed methods are implemented on a 2D grid. But sometimes it's also useful to see the value not by its color but by the height of the surface.
+This is exactly what a height plot does, it maps the values onto the Z-axis. Since the simulation uses a top down view, not much can be seen. Even with lightening
+and shadows it still left to be desired. \\
-By rotating the field the height plots become much more visible. Rotation is achieved by dragging the mouse over the screen while holding the middle mouse button or scroll wheel, this however only controlls the yaw and the pitch. Rolling can easily be done by using the shift key in addition to the mouse button. The shift key can also be used on the left mouse button to move the field up and down, left and right. This all becomes helpfull when using the scroll wheen to zoom in and out. \\
+By rotating the field the height plots become much more visible. Rotation is achieved by dragging the mouse over the screen while holding the middle mouse button or
+scroll wheel, this however only controls the yaw and the pitch. Rolling can easily be done by using the shift key in addition to the mouse button. The shift key can
+also be used on the left mouse button to move the field up and down, left and right. This all becomes helpful when using the scroll when to zoom in and out.
+\\
\section{Implementation}
-Realizing height plots would not be very visible from the default view, rotation, zoom and movement was implemented first. After having this ability the heigh plots where costructed as follows. \\
+Realizing height plots would not be very visible from the default view, rotation, zoom and movement was implemented first. After having the ability we constructed
+the height plots as follows. \\
-Since vertex allready had x and y-coordinates, all that was needed was to add a z-coordinate. An extra array to track the height of each vertex was used, as the original simulation and its datastructers should not be disturbed. As value for the height any of the primary datasets can be choosen. When drawing a vertex the stored height from the array is then rendered using that value for the z-coordinate. \\
+Since vertex already had x and y-coordinates, all that was needed was to add a z-coordinate. An extra array to track the height of each vertex was used, as the
+original simulation and its data-structures should not be disturbed. As value for the height any of the primary datasets can be chosen. When drawing a vertex the
+stored height from the array is then rendered using that value for the z-coordinate. \
-To see improve the preception of depth in the simulation some ambient and diffuse light was added. In order to let the light have effect on the surface also the normal vector was being calculated and stored for each vertex. \\
+To see improve the perception of depth in the simulation some ambient and diffuse light was added. In order to let the light have effect on the surface also the
+normal vector was being calculated and stored for each vertex. \
\begin {center}
\includegraphics[width=\textwidth]{height_plot.png} \\
- Figure 9: A height plot of the density \\
+ Figure 10: A height plot of the density \\
\end {center}
-The above image (figure 9) shows a height plot of a fluid where the height translates to the density of the fluid. The colormap is also mapped to the density but this does not necessarily have to be the case. In figure 10, the height is visualizing the velocity of the fluid while the colormap shows differences in the density. \\
+The above image (figure 10) shows a height plot of a fluid where the height translates to the density of the fluid. The colormap is also mapped to the density but
+this does not necessarily have to be the case. In figure 10, the height is visualizing the velocity of the fluid while the colormap shows differences in the
+density. \\
-It can be seen in the second height plot, the bright yellow colors are not on the highest point of the height map. This means the density is not always the largest where the velocity is high. \\
+It can be seen in the second height plot, the bright yellow colors are not on the highest point of the height map. This means the density is not always the largest
+where the velocity is high. \\
\begin {center}
\includegraphics[width=\textwidth]{height_plot2.png} \\
- Figure 10: Velocity height plot \\
+ Figure 11: Velocity height plot \\
\end {center}
\subsection{Normal vector}
-To calculate the normal vector for a given vertex, say $ v_0 $, firstly the two neighboring vertices in that cell are taken, $ v_{1} $ and $ v_{2} $. Then the difference of $ v_0 $ with $ v_1 $ and of $ v_1 $ with $ v_2 $ is taken. Lastly the cross product of these two differences is normalized to yield the result. This gives the normal vector at $ v_0 $. \\
+To calculate the normal vector for a given vertex, say $ v_0 $, firstly the two neighboring vertices in that cell are taken, $ v_{1} $ and $ v_{2} $. Then the
+difference of $ v_0 $ with $ v_1 $ and of $ v_1 $ with $ v_2 $ is taken. Lastly the cross product of these two differences is normalized to yield the result. This
+gives the normal vector at $ v_0 $. \\
-OpenGL uses this vector to calculate the angle between the normal and the light source that is shining on the vertex. This angle is then used to shade a vertex, and with that an entire surface. \\
+OpenGL uses this vector to calculate the angle between the normal and the light source that is shining on the vertex. This angle is then used to shade a vertex, and
+with that an entire surface. \\
\section{Difficulties}
@@ -42,18 +57,24 @@ Some small issues throughout the implementation of this assignment arose, but ev
\subsection{Rotation}
-The first problem encountered was due to the rotation of the field. Rotating around one axis was not to difficult. When trying to rotate the field around two or three axes, the simulation would not rotate around its center any more.\\
+The first problem encountered was due to the rotation of the field. Rotating around one axis was not to difficult. When trying to rotate the field around two or
+three axes, the simulation would not rotate around its center any more. \\
-As it turns out the translation and rotation was in the opposite order. After changing the order of rotation and translation the simlation turned properly around the center. \\
+As it turns out the translation and rotation was in the opposite order. After changing the order of rotation and translation the simulation turned properly around
+the center. \\
\subsection{Height strips}
-When first implementing the height plots a third dimension was simply added when rendering the triangle strips for the smoke visualization. This had as an effect that the different rows of each of the triangle strips in the simulation where not connected. In stead of a height plots, height strips where implemented. \\
+When first implementing the height plots a third dimension was simply added when rendering the triangle strips for the smoke visualization. This had as an effect
+that the different rows of each of the triangle strips in the simulation where not connected. In stead of a height plots we implemented height strips. \\
-This problem was countered first calculating the height for each vertex and storing it in an array. When rendering a vertex, the correct value is then retrieved from the array to correctly display the height. \\
+This problem was countered first calculating the height for each vertex and storing it in an array. When rendering a vertex, the correct value is then retrieved
+from the array to correctly display the height. \\
\subsection{Calculating the normal vector}
-When enabling the light in our program and adding the normal to each vertex there where some strange result. Because of the fact thatthe left lower neightbor was not concistently evaluated to calculate the normal vector. As a result each vertex was randomly pointing up or downwards, resulting in something that could be best explained as a checkers board. \\
+When enabling the light in our program and adding the normal to each vertex there where some strange result. Because of the fact that the left lower neighbor was
+not consistently evaluated to calculate the normal vector. As a result each vertex was randomly pointing up or downwards, resulting in something that could be best
+explained as a checkers board. \\
-When rendering the normal vectors the cause of the problem became immediatly visiable and it was quickly resolved. \\
+When rendering the normal vectors the cause of the problem became immediately visible and it was quickly resolved. \\
diff --git a/Smoke/report/chapter8.aux b/Smoke/report/chapter8.aux
index 7f3ada2..04de125 100644
--- a/Smoke/report/chapter8.aux
+++ b/Smoke/report/chapter8.aux
@@ -4,9 +4,9 @@
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {8.1}Description}{24}}
\@writefile{toc}{\contentsline {section}{\numberline {8.2}Implementation}{24}}
-\@writefile{toc}{\contentsline {section}{\numberline {8.3}Difficulties}{25}}
+\@writefile{toc}{\contentsline {section}{\numberline {8.3}Difficulties}{26}}
\@setckpt{chapter8}{
-\setcounter{page}{26}
+\setcounter{page}{27}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
diff --git a/Smoke/report/chapter8.tex b/Smoke/report/chapter8.tex
index 7007e86..511b5cc 100644
--- a/Smoke/report/chapter8.tex
+++ b/Smoke/report/chapter8.tex
@@ -14,7 +14,18 @@ The implemented streamtubes initially were not actually flowing trough the fluid
Firstly the seedpoint placement was implemented. The user is able to pick an exact position for a seedpoint by with the mouse. A seedpoint is rendered as a small sphere. \\
-Tracing the streamtubes was possible by going through a frame and getting the velocity or force vector components and calculating it's possition in the previous, stored, frame. By doing so streamlines visible. Using configureable cylinders rather then lines streamtubes where born. \\
+\begin {center}
+ \includegraphics[width=\textwidth]{streamtubes.png} \\
+ Figure 12: Eight streamtubes with a rainbow colormap \\
+\end {center}
+
+The simulation also has a history array that stores up to 80 frames. The user can go back and forth in this frame history or render all 80 frames at once to get
+some sort of volumetric effect of the smoke. \\
+
+\begin {center}
+ \includegraphics[width=\textwidth]{volume.png} \\
+ Figure 13: volumetric render of the smoke \\
+\end {center}
\section{Difficulties}
diff --git a/Smoke/report/chapter9.aux b/Smoke/report/chapter9.aux
index b5a7220..24d1e0d 100644
--- a/Smoke/report/chapter9.aux
+++ b/Smoke/report/chapter9.aux
@@ -1,11 +1,11 @@
\relax
-\@writefile{toc}{\contentsline {chapter}{\numberline {9}Conclusion}{26}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {9}Conclusion}{27}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
-\@writefile{toc}{\contentsline {section}{\numberline {9.1}Visualization}{26}}
-\@writefile{toc}{\contentsline {section}{\numberline {9.2}The course}{27}}
+\@writefile{toc}{\contentsline {section}{\numberline {9.1}Visualization}{27}}
+\@writefile{toc}{\contentsline {section}{\numberline {9.2}The course}{28}}
\@setckpt{chapter9}{
-\setcounter{page}{28}
+\setcounter{page}{29}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
diff --git a/Smoke/report/divergence.PNG b/Smoke/report/divergence.PNG
new file mode 100644
index 0000000..d806a66
--- /dev/null
+++ b/Smoke/report/divergence.PNG
Binary files differ
diff --git a/Smoke/report/glyphs.png b/Smoke/report/glyphs.png
index 0c5f963..7809657 100644
--- a/Smoke/report/glyphs.png
+++ b/Smoke/report/glyphs.png
Binary files differ
diff --git a/Smoke/report/glyphs2.png b/Smoke/report/glyphs2.png
index 07a6367..8d72d4d 100644
--- a/Smoke/report/glyphs2.png
+++ b/Smoke/report/glyphs2.png
Binary files differ
diff --git a/Smoke/report/height_plot.png b/Smoke/report/height_plot.png
index 3ed9109..c1a1dbe 100644
--- a/Smoke/report/height_plot.png
+++ b/Smoke/report/height_plot.png
Binary files differ
diff --git a/Smoke/report/height_plot2.png b/Smoke/report/height_plot2.png
index 0990c0f..4a8d68c 100644
--- a/Smoke/report/height_plot2.png
+++ b/Smoke/report/height_plot2.png
Binary files differ
diff --git a/Smoke/report/isolines.PNG b/Smoke/report/isolines.PNG
index be60ce7..c99b5a1 100644
--- a/Smoke/report/isolines.PNG
+++ b/Smoke/report/isolines.PNG
Binary files differ
diff --git a/Smoke/report/streamtubes.PNG b/Smoke/report/streamtubes.PNG
new file mode 100644
index 0000000..df20303
--- /dev/null
+++ b/Smoke/report/streamtubes.PNG
Binary files differ
diff --git a/Smoke/report/volume.PNG b/Smoke/report/volume.PNG
new file mode 100644
index 0000000..9f1502b
--- /dev/null
+++ b/Smoke/report/volume.PNG
Binary files differ
diff --git a/Smoke/report/wilrik.png b/Smoke/report/wilrik.png
index 554e5ff..7ad6402 100644
--- a/Smoke/report/wilrik.png
+++ b/Smoke/report/wilrik.png
Binary files differ