This commit is contained in:
Thomas Forgione 2020-02-05 16:34:07 +01:00
parent a5a6581f10
commit 0e812abafa
2 changed files with 48 additions and 39 deletions

View File

@ -927,3 +927,11 @@
pages={756--761},
year={2003}
}
@inproceedings{3d-tiles-2,
title={Using glTF for streaming CityGML 3D city models},
author={Schilling, Arne and Bolling, Jannes and Nagel, Claus},
booktitle={Proceedings of the 21st International Conference on Web3D Technology},
pages={109--116},
year={2016}
}

View File

@ -105,17 +105,6 @@ Although relevant for compression, transmission and in particular streaming, thi
% Zampoglou
\citep{zampoglou} is the first paper that proposes to use DASH to stream 3D content.
In their work, the authors describe a system that allows users to access 3D content at multiple resolutions.
They organize the content, following DASH terminology, into periods, adaptation sets, representations.
Their first adaptation set codes the tree structure of the scene graph.
Each further adaptation set contains both geometry and texture information and is available at different resolutions defined in a corresponding representation.
To avoid requests that would take too long and thus introduce latency, the representations are split into segments.
The authors discuss the optimal number of polygons that should be stored in a single segment.
On the one hand, using segments containing very few faces will induce many HTTP requests from the client, and will lead to poor streaming efficiency.
On the other hand, if segments contain too many faces, the time to load the segment will be long and the system loses adaptability.
Their approach works well for several objects, but does not handle view-dependent streaming, which is desirable in the use case of large NVEs\@.
\subsection{Viewpoint dependency}
3D streaming means that content is downloaded while the user is interacting with the 3D object.
@ -151,30 +140,6 @@ This is called the \emph{popping effect} and level of details have the advantage
Level of details have then been used for 3D streaming.
For example, \citep{streaming-hlod} propose an out-of-core viewer for remote model visualisation based by adapting hierarchical level of details~\cite{hlod} to the context of 3D streaming.
Level of details can also be used to perform viewpoint dependant streaming, such as \citep{view-dependent-lod}.
Another example is 3D Tiles \citep{3d-tiles}, which is a specification for visualizing massive 3D geospatial data developed by Cesium and built on top of glTF\@.
Their main goal is to display 3D objects on top of regular maps, and their visualisation consists in a top-down view, whereas we seek to let users freely navigate in our scenes, whether it be flying over the scene or moving along the roads.
\begin{figure}[ht]
\centering
\includegraphics[width=0.8\textwidth]{assets/state-of-the-art/3d-streaming/3dtiles.png}
\caption{Screenshot of 3D Tiles interface~\citep{3d-tiles}}
\end{figure}
3D Tiles, as its name suggests, is based on a spacial partitionning of the scene.
It started with a regular octree, but has then been improved to a $k$-d tree (see Figure~\ref{sote:3d-tiles-partition}).
\begin{figure}[th]
\centering
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=1\textwidth]{assets/state-of-the-art/3d-streaming/3d-tiles-octree.png}
\caption{With regular octree (depth 4)}
\end{subfigure}
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=1\textwidth]{assets/state-of-the-art/3d-streaming/3d-tiles-kd-tree.png}
\caption{With $k$-d tree (depth 6)}
\end{subfigure}
\caption{Spatial partitionning used in 3D Tiles\label{sote:3d-tiles-partition}}
\end{figure}
\subsection{Texture streaming}
@ -206,19 +171,55 @@ Since the 3D scenes we are interested in in our work consists in a soup of textu
% All four works considered a single, manifold textured mesh model with progressive meshes, and are not applicable in our work since we deal with large and potentially non-manifold scenes.
This thesis proposes a scalable streaming framework for large textured 3D scenes based on DASH, like~\citep{zampoglou}, but featuring a space partitioning of scenes in order to provide viewpoint dependent streaming.
\subsection{Streaming in game engines}
In traditional video games, including online games, there is no requirement for 3D data streaming.
They either come with a physical support (CD, DVD, Blu-Ray) or they require the downloading of the game itself, which includes the 3D data, before letting the user play.
Video games either come with a physical support (CD, DVD, Blu-Ray) or they require the downloading of the game itself, which includes the 3D data, before letting the user play.
However, transferring data from the disk to the memory is already a form of streaming.
This is why optimized engines for video games use techniques that are reused for streaming such as level of details, to reduce the details of objects far away for the point of view and save the resources to enhance the level of detail of closer objects.
Some other online games, such as \href{https://secondlife.com}{Second Life}, rely on data generated by users, and thus are forced to send data from users to others.
Some other online games, such as \href{https://secondlife.com}{Second Life}, rely on user generated data, and thus are forced to send data from users to others.
In such scenarios, 3D streaming is appropriate and this is why the idea of streaming 3D content for video games has been investigated.
For example, \citep{game-on-demand} proposes an online game engine based on geometry streaming, that addresses the challenge of streaming 3D content at the same time as synchronisation of the different players.
\subsection{NVE streaming frameworks}
\citep{zampoglou} is the first paper that proposes to use DASH to stream 3D content.
In their work, the authors describe a system that allows users to access 3D content at multiple resolutions.
They organize the content, following DASH terminology, into periods, adaptation sets, representations.
Their first adaptation set codes the tree structure of the scene graph.
Each further adaptation set contains both geometry and texture information and is available at different resolutions defined in a corresponding representation.
To avoid requests that would take too long and thus introduce latency, the representations are split into segments.
The authors discuss the optimal number of polygons that should be stored in a single segment.
On the one hand, using segments containing very few faces will induce many HTTP requests from the client, and will lead to poor streaming efficiency.
On the other hand, if segments contain too many faces, the time to load the segment will be long and the system loses adaptability.
Their approach works well for several objects, but does not handle view-dependent streaming, which is desirable in the use case of large NVEs\@.
Another example of NVE streaming framework is 3D Tiles \citep{3d-tiles,3d-tiles-2}, which is a specification for visualizing massive 3D geospatial data developed by Cesium and built on top of glTF\@.
Their main goal is to display 3D objects on top of regular maps, and their visualisation consists in a top-down view, whereas we seek to let users freely navigate in our scenes, whether it be flying over the scene or moving along the roads.
\begin{figure}[ht]
\centering
\includegraphics[width=0.8\textwidth]{assets/state-of-the-art/3d-streaming/3dtiles.png}
\caption{Screenshot of 3D Tiles interface~\citep{3d-tiles}}
\end{figure}
3D Tiles, as its name suggests, is based on a spacial partitionning of the scene.
It started with a regular octree, but has then been improved to a $k$-d tree (see Figure~\ref{sote:3d-tiles-partition}).
\begin{figure}[th]
\centering
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=1\textwidth]{assets/state-of-the-art/3d-streaming/3d-tiles-octree.png}
\caption{With regular octree (depth 4)}
\end{subfigure}
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=1\textwidth]{assets/state-of-the-art/3d-streaming/3d-tiles-kd-tree.png}
\caption{With $k$-d tree (depth 6)}
\end{subfigure}
\caption{Spatial partitionning used in 3D Tiles\label{sote:3d-tiles-partition}}
\end{figure}
% \subsection{Prefetching in NVE}
% The general prefetching problem can be described as follows: what are the data most likely to be accessed by the user in the near future, and in what order do we download the data?
%