Orthographiassions (merci Thierry)
This commit is contained in:
parent
504dab4e9b
commit
2230488ad5
|
@ -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 requêtes
|
||||
\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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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]
|
||||
|
|
Loading…
Reference in New Issue