Commit
|
@ -292,6 +292,34 @@ Les applications sont principalement composées de programmes principaux, qui
|
||||||
utilisent les classes de L3D, ainsi, elles ne sont pas fusionnées avec L3D, et
|
utilisent les classes de L3D, ainsi, elles ne sont pas fusionnées avec L3D, et
|
||||||
laissées dans le namespace global.
|
laissées dans le namespace global.
|
||||||
|
|
||||||
|
\paragraph{}
|
||||||
|
Ces premières applications sont des applications de test pour se familiariser
|
||||||
|
avec les technologies.
|
||||||
|
|
||||||
|
\subsubsection{Bouncing Cube}
|
||||||
|
Ceci est une première application de test de la libraire graphique. C'est une
|
||||||
|
des premières applications qui été faite, et elle m'a surtout servi à m'initier
|
||||||
|
avec la technologie, et notamment avec les clics sur les objets. C'est un
|
||||||
|
simple cube, qui rebondit sur le sol et finit par s'arrêter. En cliquant sur le
|
||||||
|
cube, il saute à nouveau.
|
||||||
|
|
||||||
|
\subsubsection{Multisphere}
|
||||||
|
Ceci est une des premières applications faites : elle m'a permi de tester
|
||||||
|
l'affichage et le masquage des objets dans la librairie graphique. L'objectif
|
||||||
|
était de raffiner le maillage au fur et à mesure en utilisant des modèles
|
||||||
|
diffférents (plusieurs modèles sont chargés et on passe de l'un à l'autre en
|
||||||
|
cliquant sur l'interface).
|
||||||
|
|
||||||
|
\subsubsection{Stream-demo}
|
||||||
|
Ceci est la première application que j'ai développée et qui utilise les sockets
|
||||||
|
: c'est une version simplifiée du \texttt{ProgressiveLoader} que l'on détaillera
|
||||||
|
dans la section \ref{streaming}.
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\paragraph{}
|
||||||
|
Les prochaines sous-sections détaillent les applications qui ont été
|
||||||
|
développées pour le projet.
|
||||||
|
|
||||||
\subsubsection{Interactive}
|
\subsubsection{Interactive}
|
||||||
Ceci est l'interface principale, où l'utilisateur doit rechercher les pièces.
|
Ceci est l'interface principale, où l'utilisateur doit rechercher les pièces.
|
||||||
Nous en parlerons plus dans la section \ref{interface}.
|
Nous en parlerons plus dans la section \ref{interface}.
|
||||||
|
@ -320,4 +348,6 @@ 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
|
||||||
soient glissées à l'intérieur du modèle.
|
soient glissées à l'intérieur du modèle. Elle contient notamment un affichage
|
||||||
|
du nombre de pièces présentes sur la scène, et cliquer sur une pièce la
|
||||||
|
supprime.
|
||||||
|
|
|
@ -13,9 +13,20 @@ Je tiens particulièrement à remercier \\
|
||||||
mais je me dois aussi de remercier \\
|
mais je me dois aussi de remercier \\
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Thierry \textsc{Malon}
|
\item Thierry \textsc{Malon} et Émilie \textsc{Jalras}, pour avoir joué le
|
||||||
\item Émilie \textsc{Jalras}, parce que c'est toujours rigolo de se prendre
|
rôle de canard en plastique \footnote{\emph{La méthode du canard en
|
||||||
une gomme dans la tronche,
|
plastique consiste à expliquer méticuleusement le code source que l'on
|
||||||
|
a écrit à un collègue, à un simple passant, ou même à un objet inanimé
|
||||||
|
comme un canard en plastique. Le simple fait d'exprimer ses pensées à
|
||||||
|
voix haute est censé aider à trouver les erreurs de programmation.
|
||||||
|
Comme les réactions de l'interlocuteur ou son niveau de compréhension
|
||||||
|
du problème n'ont aucune importance dans ce processus, on peut le
|
||||||
|
remplacer par un canard en plastique.} --- Contenu soumis à la licence
|
||||||
|
CC-BY-SA 3.0 (\url{http://creativecommons.org/licenses/by-sa/3.0/deed.fr})
|
||||||
|
Source : Article Méthode du canard en plastique de Wikipédia en
|
||||||
|
français
|
||||||
|
(\url{http://fr.wikipedia.org/wiki/M\%C3\%A9thode\_du\_canard\_en\_plastique})}.
|
||||||
|
et plus encore,
|
||||||
\item Julien \textsc{Fayer}, qui nous a accompagné durant les derniers mois
|
\item Julien \textsc{Fayer}, qui nous a accompagné durant les derniers mois
|
||||||
de nos stages
|
de nos stages
|
||||||
\item Bastien \textsc{Durix},
|
\item Bastien \textsc{Durix},
|
||||||
|
|
Before Width: | Height: | Size: 356 KiB After Width: | Height: | Size: 399 KiB |
Before Width: | Height: | Size: 362 KiB After Width: | Height: | Size: 407 KiB |
Before Width: | Height: | Size: 336 KiB After Width: | Height: | Size: 380 KiB |
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 142 KiB |
Before Width: | Height: | Size: 301 KiB After Width: | Height: | Size: 337 KiB |
After Width: | Height: | Size: 23 KiB |
|
@ -3,6 +3,16 @@
|
||||||
\paragraph{}
|
\paragraph{}
|
||||||
La première interface a été pensée pour être la plus simple possible.
|
La première interface a été pensée pour être la plus simple possible.
|
||||||
L'utilisateur contrôle une caméra qui se déplace librement dans un modèle 3D.
|
L'utilisateur contrôle une caméra qui se déplace librement dans un modèle 3D.
|
||||||
|
Elle a été pensée comme un système de coordonnées sphériques dont on peut
|
||||||
|
modifier les paramètres :
|
||||||
|
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=0.5]{img/wiki/spheric.png}
|
||||||
|
\caption{Les paramètres du contrôleur. \protect\footnotemark}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\footnotetext{Contenu soumis à la licence CC-BY-SA 3.0 (\url{http://creativecommons.org/licenses/by-sa/3.0/deed.fr}) Source : Article Coordonnées sphériques de Wikipédia en français (\url{http://fr.wikipedia.org/wiki/Coordonn\%C3\%A9es\_sph\%C3\%A9riques}).}
|
||||||
|
|
||||||
\paragraph{}
|
\paragraph{}
|
||||||
La translation de la caméra est contrôlée par le clavier : les touches Z, Q, S,
|
La translation de la caméra est contrôlée par le clavier : les touches Z, Q, S,
|
||||||
|
@ -15,12 +25,62 @@ On peut pivoter la caméra de plusieurs manières :
|
||||||
\item via le pavé numérique (2, 4, 6, et 8 pour tourner respectivement vers
|
\item via le pavé numérique (2, 4, 6, et 8 pour tourner respectivement vers
|
||||||
le bas, vers la gauche, vers la droite et vers le haut)
|
le bas, vers la gauche, vers la droite et vers le haut)
|
||||||
\item via la souris, comme \emph{drag-n-drop}, en cliquant un point de la
|
\item via la souris, comme \emph{drag-n-drop}, en cliquant un point de la
|
||||||
scène et en le déplaçant
|
scène et en le déplaçant (le mouvement de la caméra sera alors opposé
|
||||||
|
au mouvement de la souris)
|
||||||
\item via la souris, en mode \emph{pointer-lock}, comme dans un jeu video
|
\item via la souris, en mode \emph{pointer-lock}, comme dans un jeu video
|
||||||
de tir
|
de tir
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
\paragraph{}
|
||||||
|
Par exemple, on peut tourner vers a gauche (c'est-à-dire diminuer $\theta$) en :
|
||||||
|
\begin{itemize}
|
||||||
|
\item cliquant un point et en le déplaçant vers la droite (en mode
|
||||||
|
\emph{drag-n-drop})
|
||||||
|
\item déplaçant la souris vers la gauche (en mode \emph{pointer-lock})
|
||||||
|
\item en appuyant sur la touche 4 du pavé numérique
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\paragraph{}
|
||||||
|
Voici un petit tableau qui permet de montrer comment la caméra tourne autour de
|
||||||
|
son centre en fonction des interactions.
|
||||||
|
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\begin{subfigure}[b]{0.3\textwidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=0.12]{img/wiki/04.png}
|
||||||
|
\caption{Vers le haut ($\delta \nearrow$)}
|
||||||
|
\end{subfigure}
|
||||||
|
\\
|
||||||
|
\begin{subfigure}[b]{0.3\textwidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=0.12]{img/wiki/03.png}
|
||||||
|
\caption{Vers la gauche ($\theta \searrow$)}
|
||||||
|
\end{subfigure}
|
||||||
|
~
|
||||||
|
\begin{subfigure}[b]{0.3\textwidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=0.12]{img/wiki/01.png}
|
||||||
|
\caption{Angle initial}
|
||||||
|
\end{subfigure}
|
||||||
|
~
|
||||||
|
\begin{subfigure}[b]{0.3\textwidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=0.12]{img/wiki/02.png}
|
||||||
|
\caption{Vers la droite ($\theta \nearrow$)}
|
||||||
|
\end{subfigure}
|
||||||
|
\\
|
||||||
|
\begin{subfigure}[b]{0.3\textwidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=0.12]{img/wiki/05.png}
|
||||||
|
\caption{Vers le bas ($\delta $\searrow)}
|
||||||
|
\end{subfigure}
|
||||||
|
|
||||||
|
\caption{Les différentes rotations possibles}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\newpage
|
||||||
\section{Les recommandations}
|
\section{Les recommandations}
|
||||||
\paragraph{}
|
\paragraph{}
|
||||||
Les recommandations sont là pour suggérer des points de vue à l'utilisateur.
|
Les recommandations sont là pour suggérer des points de vue à l'utilisateur.
|
||||||
|
|
|
@ -48,3 +48,23 @@ Au bout de quelques semaines, j'ai décidé de faire le choix de la 3D et j'ai
|
||||||
commencé à découvrir les multiples façons de faire des interfaces 3D via HTML
|
commencé à découvrir les multiples façons de faire des interfaces 3D via HTML
|
||||||
et JavaScript.
|
et JavaScript.
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\part{Organisation}
|
||||||
|
|
||||||
|
\section{Encadrants}
|
||||||
|
Ce stage a été encadré par Vincent \textsc{Charvillat}, Géraldine
|
||||||
|
\textsc{Morin}, et Axel \textsc{Carlier} de l'IRIT, et nous avons eu le soutien
|
||||||
|
de Wei Tsang \textsc{Ooi}, professeur de la NUS à Singapour.
|
||||||
|
|
||||||
|
\section{Communication}
|
||||||
|
Les communications inter-IRIT se faisaient principalement par mail.
|
||||||
|
|
||||||
|
\paragraph{}
|
||||||
|
Des réunions étaient organisées lorsqu'elles étaient nécessaires, soit environ
|
||||||
|
toutes les deux semaines. Ces réunions étaient souvent faites via Skype ou
|
||||||
|
Hangouts, en présence de Wei Tsang.
|
||||||
|
|
||||||
|
\section{Tests}
|
||||||
|
Le site a été déployé à l'adresse \url{http://3dinterface.no-ip.org/}. Les
|
||||||
|
différentes choses à faire tester aux encadrants se sont retrouvées sur des
|
||||||
|
pages à cette adresse.
|
||||||
|
|
|
@ -68,7 +68,7 @@ anchorcolor = blue]{hyperref}
|
||||||
\makeatother
|
\makeatother
|
||||||
|
|
||||||
\usetikzlibrary{trees}
|
\usetikzlibrary{trees}
|
||||||
|
\usepackage{afterpage}
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
\begin{titlepage}
|
\begin{titlepage}
|
||||||
|
|