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é
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
parerons ici que du serveur, puis du code client.
parlerons ici que du serveur, puis du code client.
\paragraph{}
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
\item \emph{pg} : une librairie permettant la connexion à la base de données
\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
les sessions sous forme de cookies
\item \emph{socket.io} : une librairie permettant d'utiliser facilement les
@ -307,15 +307,16 @@ faites comme il faut.
\subsubsection{Coin-creator}
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
des pièces crées au format JSON.
des pièces créées au format JSON.
\subsubsection{Coin-editor}
Cette interface permet d'étier les pièces : elle est similaire à la précédente,
mais expose une variable globale lors du clic sur une pièce qui permet de
déplacer celle-ci. Elle sert à corriger les bugs potentiels introduits par
l'interface précédente, notamment lorsqu'une pièce traverse une paroi.
Cette interface permet d'éditer les pièces : elle est similaire à la
précédente, mais expose une variable globale lors du clic sur une pièce qui
permet de déplacer celle-ci. Elle sert à corriger les bugs potentiels
introduits par l'interface précédente, notamment lorsqu'une pièce traverse une
paroi.
\subsubsection{Coin-checker}
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}
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
\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
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é.
Nous avons simplement adapté cette techniques à nos recommandations : lorsque
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]
\centering
@ -114,7 +114,7 @@ une petite boite au voisinage du curseur.
\subsubsection{Au clic}
\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 :
\begin{itemize}
\item la position initiale est la position de la caméra
@ -125,11 +125,11 @@ polynôme interpolant tel que :
\paragraph{}
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{}
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
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.
\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.
\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.
\paragraph{}
Évidemment, cette partie est celle qui comment après la fin de la première
partie : il faut nous seulement connaître l'influence des recommandations sur
Évidemment, cette partie est celle qui commence après la fin de la première
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, 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.
\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
:
\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
\item de sommets (\emph{vertices}) : des points 3D
\item de coordonnées de textures : des points en 2D qui référence un point
d'une image
\item de coordonnées de textures : des points en 2D qui référencent un
point d'une image
\item de normales : des vecteurs en 3D
\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
@ -47,7 +47,7 @@ répertoire \texttt{geo} pour le serveur et le fichier
\subsection{Serveur}
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 :
\begin{itemize}
\item la classe \texttt{Mesh}, qui représente un \emph{sous-modèle}, avec
@ -118,11 +118,11 @@ fonctionnait ainsi :
\paragraph{}
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
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
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{}
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.
\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.
\begin{figure}[H]