Orthographiassions (merci Thierry)

This commit is contained in:
Thomas FORGIONE 2015-09-10 15:39:23 +02:00
parent 504dab4e9b
commit 2230488ad5
3 changed files with 25 additions and 24 deletions

View File

@ -2,7 +2,7 @@
Comme dit précédemment, le programme se décompose en un côté serveur et un côté Comme dit précédemment, le programme se décompose en un côté serveur et un côté
client. Le cas du \emph{streaming} sera traité à part (dans la partie client. Le cas du \emph{streaming} sera traité à part (dans la partie
\ref{streaming}, puisqu'il est à cheval sur le client et le serveur) et nous ne \ref{streaming}, puisqu'il est à cheval sur le client et le serveur) et nous ne
parerons ici que du serveur, puis du code client. parlerons ici que du serveur, puis du code client.
\paragraph{} \paragraph{}
Voici une simplification de l'arborescence de la version de Voici une simplification de l'arborescence de la version de
@ -202,7 +202,7 @@ Les \emph{packages} que nous utilisons sont les suivants :
pages HTML pages HTML
\item \emph{pg} : une librairie permettant la connexion à la base de données \item \emph{pg} : une librairie permettant la connexion à la base de données
\item \emph{body-parser} : une librairie permettant de traiter simplement \item \emph{body-parser} : une librairie permettant de traiter simplement
les paramètres passés aux reqûetes les paramètres passés aux reqtes
\item \emph{cookie-parser} et \emph{cookie-session} : une librairie gérant \item \emph{cookie-parser} et \emph{cookie-session} : une librairie gérant
les sessions sous forme de cookies les sessions sous forme de cookies
\item \emph{socket.io} : une librairie permettant d'utiliser facilement les \item \emph{socket.io} : une librairie permettant d'utiliser facilement les
@ -307,15 +307,16 @@ faites comme il faut.
\subsubsection{Coin-creator} \subsubsection{Coin-creator}
C'est une interface qui permet de créer des pièces : en cliquant sur une paroi, C'est une interface qui permet de créer des pièces : en cliquant sur une paroi,
un pièce apparait, et en cliquant sur une pièce, elle disparaît. Cette une pièce apparaît, et en cliquant sur une pièce, elle disparaît. Cette
interface possède un bouton qui permet d'envoyer un mail contenant les données interface possède un bouton qui permet d'envoyer un mail contenant les données
des pièces crées au format JSON. des pièces créées au format JSON.
\subsubsection{Coin-editor} \subsubsection{Coin-editor}
Cette interface permet d'étier les pièces : elle est similaire à la précédente, Cette interface permet d'éditer les pièces : elle est similaire à la
mais expose une variable globale lors du clic sur une pièce qui permet de précédente, mais expose une variable globale lors du clic sur une pièce qui
déplacer celle-ci. Elle sert à corriger les bugs potentiels introduits par permet de déplacer celle-ci. Elle sert à corriger les bugs potentiels
l'interface précédente, notamment lorsqu'une pièce traverse une paroi. introduits par l'interface précédente, notamment lorsqu'une pièce traverse une
paroi.
\subsubsection{Coin-checker} \subsubsection{Coin-checker}
Elle permet de chercher toutes les pièces d'une scène, au cas où certaines se Elle permet de chercher toutes les pièces d'une scène, au cas où certaines se

View File

@ -39,7 +39,7 @@ une caméra, avec son centre optique et son plan image.
\end{figure} \end{figure}
Cette façon d'afficher une recommandation a l'avantage d'être simple, de ne pas Cette façon d'afficher une recommandation a l'avantage d'être simple, de ne pas
beaucoup masquer le reste des modèles et suggère assez bien l'idée d'un beaucoup masquer le reste des modèles et suggère assez bien l'idée d'un
\emph{point de vue recommandé}, mais elle a l'inconvéniant d'être ambiguë à \emph{point de vue recommandé}, mais elle a l'inconvénient d'être ambiguë à
cause de la perspective (dans cette image, il peut être difficile de savoir si cause de la perspective (dans cette image, il peut être difficile de savoir si
le point de vue et vers le modèle ou vers nous). le point de vue et vers le modèle ou vers nous).
@ -104,7 +104,7 @@ web. Lorsque l'on regarde une video, on a la barre de \emph{seeking} en bas et
passer le curseur sur cette barre affiche l'image de la vidéo à l'instant visé. passer le curseur sur cette barre affiche l'image de la vidéo à l'instant visé.
Nous avons simplement adapté cette techniques à nos recommandations : lorsque Nous avons simplement adapté cette techniques à nos recommandations : lorsque
le curseur survole une recommandation, une prévisualisation est affichée dans le curseur survole une recommandation, une prévisualisation est affichée dans
une petite boite au voisinage du curseur. une petite boîte au voisinage du curseur.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
@ -114,7 +114,7 @@ une petite boite au voisinage du curseur.
\subsubsection{Au clic} \subsubsection{Au clic}
\indent Lors d'un clic sur une recommandation, la caméra suit un mouvement \indent Lors d'un clic sur une recommandation, la caméra suit un mouvement
fluide jusqu'au point de vue recommandé. La trajectoire est définié par un fluide jusqu'au point de vue recommandé. La trajectoire est définie par un
polynôme interpolant tel que : polynôme interpolant tel que :
\begin{itemize} \begin{itemize}
\item la position initiale est la position de la caméra \item la position initiale est la position de la caméra
@ -125,11 +125,11 @@ polynôme interpolant tel que :
\paragraph{} \paragraph{}
Ce mouvement fluide est là pour ne pas perturber l'utilisateur qui pourrait Ce mouvement fluide est là pour ne pas perturber l'utilisateur qui pourrait
\emph{se perde} si jamais il était téléporté \emph{se perdre} si jamais il était téléporté.
\paragraph{} \paragraph{}
De plus, les recommandations se comportent comme des liens hypertextes : elles De plus, les recommandations se comportent comme des liens hypertextes : elles
sont bleues si elles n'ont jamais été clicées, et deviennent violettes si sont bleues si elles n'ont jamais été cliquées, et deviennent violettes si
l'utilisateur les a déjà consommées. Ceci est fait pour qu'un utilisateur l'utilisateur les a déjà consommées. Ceci est fait pour qu'un utilisateur
puisse savoir par où il est passé, et ce qui lui reste encore à visiter. puisse savoir par où il est passé, et ce qui lui reste encore à visiter.
@ -166,7 +166,7 @@ présents.
définie. Cliquer sur ce bouton ramène la caméra à sa position initiale. définie. Cliquer sur ce bouton ramène la caméra à sa position initiale.
\item \emph{Previous} : à chaque clic sur une recommandation, les positions \item \emph{Previous} : à chaque clic sur une recommandation, les positions
intiales et finales sont sauvegardées. Cliquer sur ce bouton ramène à intiale et finale sont sauvegardées. Cliquer sur ce bouton ramène à
la position précédente. la position précédente.
\item \emph{Next} : cliquer sur ce bouton ramène à la position suivante. \item \emph{Next} : cliquer sur ce bouton ramène à la position suivante.

View File

@ -5,11 +5,11 @@ ainsi précharger les parties du modèle qui vont être vues. Cette section
présente le travail qui a été réalisé dans le domaine du chargement de modèle. présente le travail qui a été réalisé dans le domaine du chargement de modèle.
\paragraph{} \paragraph{}
Évidemment, cette partie est celle qui comment après la fin de la première Évidemment, cette partie est celle qui commence après la fin de la première
partie : il faut nous seulement connaître l'influence des recommandations sur partie : il faut non seulement connaître l'influence des recommandations sur
l'utilisateur, ensuite être capable de prévoir le comportement de l'utilisateur, ensuite être capable de prévoir le comportement de
l'utilisateur, et enfin s'en servir pour précharger les bonnes parties du l'utilisateur, et enfin s'en servir pour précharger les bonnes parties du
modèles. Tout ceci n'étant pas encore possible, le travail qui a été fait est modèle. Tout ceci n'étant pas encore possible, le travail qui a été fait est
nettement plus simpliste : il n'y aura aucune prévision du comportement ici. nettement plus simpliste : il n'y aura aucune prévision du comportement ici.
\section*{Introduction} \section*{Introduction}
@ -17,11 +17,11 @@ Notre problématique ici est de transférer des modèles 3D sur le réseau. Les
modèles sont stockés sur le serveur au format \texttt{.obj} et sont constitués modèles sont stockés sur le serveur au format \texttt{.obj} et sont constitués
: :
\begin{itemize} \begin{itemize}
\item des materiaux (\texttt{usemtl}) : cela définit le matériau utilisé \item des matériaux (\texttt{usemtl}) : cela définit le matériau utilisé
pour les faces qui vont suivre pour les faces qui vont suivre
\item de sommets (\emph{vertices}) : des points 3D \item de sommets (\emph{vertices}) : des points 3D
\item de coordonnées de textures : des points en 2D qui référence un point \item de coordonnées de textures : des points en 2D qui référencent un
d'une image point d'une image
\item de normales : des vecteurs en 3D \item de normales : des vecteurs en 3D
\item de faces : une liste de 3 ou 4 sommets (représentés par leurs \item de faces : une liste de 3 ou 4 sommets (représentés par leurs
indices), avec éventuellement leurs coordonnées de textures et/ou indices), avec éventuellement leurs coordonnées de textures et/ou
@ -47,7 +47,7 @@ répertoire \texttt{geo} pour le serveur et le fichier
\subsection{Serveur} \subsection{Serveur}
Nous avons rappelé que les modèles au format \texttt{.obj} contenaient Nous avons rappelé que les modèles au format \texttt{.obj} contenaient
plusieurs \emph{sous-modèles} avec des matériau différents, le serveur connait plusieurs \emph{sous-modèles} avec des matériaux différents, le serveur connait
les classes suivantes : les classes suivantes :
\begin{itemize} \begin{itemize}
\item la classe \texttt{Mesh}, qui représente un \emph{sous-modèle}, avec \item la classe \texttt{Mesh}, qui représente un \emph{sous-modèle}, avec
@ -118,11 +118,11 @@ fonctionnait ainsi :
\paragraph{} \paragraph{}
Le serveur envoyait alors les éléments dans l'ordre dans lequel ils étaient Le serveur envoyait alors les éléments dans l'ordre dans lequel ils étaient
présents dans le fichier du modèle 3D. Le gros inconvéniant de cette méthode présents dans le fichier du modèle 3D. Le gros inconvénient de cette méthode
est que souvent, les sommets sont présents au début du fichier, et les faces est que souvent, les sommets sont présents au début du fichier, et les faces
vers la fin : nous recevons donc des informations de sommets au début qui ne vers la fin : nous recevons donc des informations de sommets au début qui ne
nous permettent rien d'afficher, puis toutes les faces d'un coup, ce qui fait nous permettent rien d'afficher, puis toutes les faces d'un coup, ce qui fait
que le streaming n'est pas aussi progressif que l'on souhaiterais. que le streaming n'est pas aussi progressif que l'on souhaiterait.
\paragraph{} \paragraph{}
Dans le cas d'un modèle sans coordonnées de textures et sans normales, la seule Dans le cas d'un modèle sans coordonnées de textures et sans normales, la seule
@ -217,7 +217,7 @@ particulier ici.}. On évite ainsi d'envoyer les faces du modèle qui sont
derrière la caméra et que l'utilisateur ne voit pas. derrière la caméra et que l'utilisateur ne voit pas.
\paragraph{} \paragraph{}
Bien sûr, si il n'y a plus de faces dans le \emph{frustum} de la caméra, on va Bien sûr, s'il n'y a plus de faces dans le \emph{frustum} de la caméra, on va
envoyer les faces en suivant la méthode de la section précédente. envoyer les faces en suivant la méthode de la section précédente.
\begin{figure}[H] \begin{figure}[H]