Skip to content

Commit

Permalink
Done some math parts and reorganized subsections
Browse files Browse the repository at this point in the history
  • Loading branch information
Adam Kalisz authored and Adam Kalisz committed Jun 5, 2015
1 parent 1abcb07 commit b52f16c
Show file tree
Hide file tree
Showing 12 changed files with 279 additions and 136 deletions.
5 changes: 4 additions & 1 deletion Paper_LaTeX/chapters/chapter01.tex
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,11 @@ \section{3D Panorama}
There are several types of projections used for 3D panoramas, see \ref{fig:three_projections}.


\section{Types of projections}
\section{Types of projections} \label{section_types_of_projections}

Only equirectangular provides a 100 percent coverage! (see \url{http://www.cambridgeincolour.com/tutorials/image-projections.htm})

You can never have perfect "lfat" (2d) representations of a sphere. There are always limitations, but you could choose the right projection for your project. More info \url{http://www.progonos.com/furuti/MapProj/Normal/CartDef/MapDef/mapDef.html}


\begin{figure}[h]
Expand Down
44 changes: 43 additions & 1 deletion Paper_LaTeX/chapters/chapter02.tex
Original file line number Diff line number Diff line change
Expand Up @@ -145,14 +145,56 @@ \subsection{Determine original point cloud resolution}

Users of PC2B have the option to determine the resolution of the 3D panorama. It can either be set to fixed multiples of 360 by 180 pixels or set to a custom resolution. We have implemented an algorithm to help the user find the best resolution for his particular point cloud. It works as follows:

\subsection{Projecting 3D points onto a 2D plane}
\subsection{Coordinate system representations}

We can express points in different coordinate systems. For example cartesian, cylindrical and spherical.

Almost all point cloud files use a cartesian coordinate system (at least the ones we are using). To get the coordinate of a point in an image plane from a point in cartesian space, we simply convert its coordinate space from cartesian to spherical. We then have the points horizontal position in a range of 360 degrees and its vertical position in a range of 180 degrees. In that way we create the image files from the point samples and then use those images to convert back to the cartesian space.

\subsection{Converting from cartesian to spherical and vice versa}

To convert from Cartesian space to spherical coordinates, we use the following equation:

$$radius = \sqrt{ (x^2 + y^2 + z^2) } $$
$$\theta = {\rm atan2} \left(y , x\right) + \pi$$
$$\phi = \cos^{-1} (z / radius)$$

(see \parencite{Pharr:2010:PBR:1854996}, page 114)


Conversely, to get from spherical to cartesian coordinates, we use:

$$x = r * \sin \theta * \cos \phi$$
$$y = r * \sin \theta * \sin \phi$$
$$z = r * \cos \theta$$

(see \parencite{Pharr:2010:PBR:1854996}, page 114)

This is inside the text $\cos (2\theta) = \cos^2 \theta - \sin^2 \theta$.


And this is a separate formula:
$$\cos (2\theta) = \cos^2 \theta - \sin^2 \theta$$

\subsection{Types of projections}

To convert from Cartesian space to spherical coordinates, we have the option to use various projection types, as already briefly introduced in \ref{section_types_of_projections}.

\subsubsection{Equirectangular projection}

$$\theta = $$
$$\theta = $$

\subsubsection{Cylindrical projection}

$$\theta = $$
$$\theta = $$

\subsubsection{Mercator projection}

$$\theta = $$
$$\theta = $$


\subsection{Saving textures}

Expand Down
9 changes: 6 additions & 3 deletions Paper_LaTeX/chapters/conclusion.tex
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
\section{Conclusion}


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam hendrerit interdum sagittis. Nulla facilisi. Pellentesque laoreet tincidunt semper. Pellentesque pellentesque lectus id arcu interdum cursus ut ac dui. Etiam feugiat nisl ac odio suscipit pretium venenatis eget diam. Morbi molestie ipsum sit amet sapien rutrum luctus. Proin ac dolor ut metus laoreet aliquam non id nunc. Curabitur non efficitur dolor. Donec iaculis, dui et porta iaculis, magna tellus placerat ex, sed porta sem ligula ac augue. Fusce vitae sagittis ex. Pellentesque faucibus cursus elit, et faucibus velit cursus in. Nam lobortis id neque id hendrerit. Fusce et dolor nisi.
To conclude, in this work we presented a method to process a point cloud file with a custom software to get a textured mesh ready to use in Blender (or any other 3d software package) and examined the use of the generated mesh for designers with the use case of reconstrucing the historic Pellerhaus Nürnberg.
This approach led to an easy way to get a mesh from a point cloud. The goals have been met and the reaults can be worked with (TODO: correct grammar and spelling ;) ).

\subsection{Mesh generation}

Expand All @@ -16,7 +16,7 @@ \subsection{Handling non-LiDAR-Data}

\section{Future Work}

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec non auctor sem, sit amet fringilla purus. Phasellus eu orci et nibh lobortis faucibus id vel lorem. Aliquam ut diam id mi aliquam finibus eu id neque. Nam consequat efficitur mi sed maximus. Nullam egestas neque enim. Nulla nec eleifend mauris, eget sollicitudin velit. Quisque ultricies feugiat neque ut condimentum. Aliquam vehicula faucibus sapien non convallis. Nullam consectetur sagittis sollicitudin. Nulla mollis laoreet metus et consectetur.
There are some further ideas how the software and how the 3D model can be used in other fields of application.

\subsection{Realtime Conversion}

Expand All @@ -30,3 +30,6 @@ \subsection{3D Lenticular}

Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras quis pharetra libero. Pellentesque consectetur, quam vel ultrices finibus, sem enim consectetur mi, in dictum tellus leo eu ante. Maecenas consequat egestas erat, in vestibulum velit pulvinar ac. Suspendisse ullamcorper augue sapien, ac suscipit nulla dictum in. Nam sit amet congue ipsum. Aenean non felis malesuada, feugiat lectus a, tincidunt quam. Fusce nec quam egestas, vulputate est in, commodo nisi. Phasellus id nunc sit amet quam iaculis ornare eu id libero. Ut tempor nisi sed est pretium auctor. Donec in nunc turpis. Integer non tristique dolor. Curabitur a elit mollis urna finibus scelerisque sit amet vel erat. Nullam nec maximus erat. Duis ante mi, posuere ut lobortis nec, posuere eu ligula.

\subsection{Augmented Reality}

Having a 3D model of the historic Pellerhaus opens a whole new set of possible new ways to communicate the history. Example: "Timetraveler The Berlin Wall App" ( \url{https://www.youtube.com/watch?t=75&v=CY9f6UJZlmM})
42 changes: 25 additions & 17 deletions Paper_LaTeX/main.aux
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces 2D Panorama of the Pellerhaus\relax }}{23}}
\newlabel{fig:2d_panorama}{{2.2}{23}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.3}Types of projections}{23}}
\newlabel{section_types_of_projections}{{2.3}{23}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces 3D Panorama Sphere\relax }}{24}}
\newlabel{fig:3d_panorama_sphere}{{2.3}{24}}
\newlabel{fig:equirectangular}{{2.4a}{24}}
Expand Down Expand Up @@ -92,31 +93,37 @@
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Point Cloud Importer}{28}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Point Cloud data formats}{28}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Determine original point cloud resolution}{28}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}Projecting 3D points onto a 2D plane}{28}}
\abx@aux@cite{ytQtOpenGL}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}Coordinate system representations}{28}}
\abx@aux@cite{Pharr:2010:PBR:1854996}
\newlabel{tab:xyz_file}{{3.2a}{29}}
\newlabel{sub@tab:xyz_file}{{a}{29}}
\newlabel{tab:ply_file}{{3.2b}{29}}
\newlabel{sub@tab:ply_file}{{b}{29}}
\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\contentsline {table}{\numberline {3.2}{\ignorespaces Sample generated point cloud files\relax }}{29}}
\newlabel{tab:xyz_ply_file_structure}{{3.2}{29}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}Saving textures}{29}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.5}OpenGL Point Cloud Viewer}{29}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.6}Meshing}{29}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.7}Texture Coordinates and Normals}{29}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}Converting from cartesian to spherical and vice versa}{29}}
\abx@aux@cite{ytQtOpenGL}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.5}Types of projections}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Equirectangular projection}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Cylindrical projection}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Mercator projection}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.6}Saving textures}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.7}OpenGL Point Cloud Viewer}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.8}Meshing}{30}}
\abx@aux@cite{webMysteryOfTheBlend}
\abx@aux@cite{webBlenderArtistsBlendExport}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.8}Mesh Exporter}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{.obj}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{.blend}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{custom format}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.9}Optimizations}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Flip horizontal direction of panorama}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Panorama pixel depth testing}{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Panorama noise reduction}{31}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Remove doubles}{31}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{3D Distortion}{31}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Tiling}{31}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.9}Texture Coordinates and Normals}{31}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.10}Mesh Exporter}{31}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{.obj}{31}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{.blend}{31}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{custom format}{31}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.11}Optimizations}{31}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Flip horizontal direction of panorama}{31}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Panorama pixel depth testing}{31}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Panorama noise reduction}{32}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Remove doubles}{32}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{3D Distortion}{32}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Tiling}{32}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {4}Production: Recreating the Pellerhaus from 1605}{33}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }}
Expand All @@ -140,6 +147,7 @@
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.1}Realtime Conversion}{38}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.2}Integration in the Blender core}{38}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.3}3D Lenticular}{38}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.4}Augmented Reality}{38}}
\abx@aux@cite{ytLaTeX}
\abx@aux@cite{webLaTeX-Tutorial}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {A}Appendix Title}{39}}
Expand Down
Loading

0 comments on commit b52f16c

Please sign in to comment.