%-*-LaTeX-*-

\part{Introduction}

\section{Sujet du projet}
Notre projet consiste \`a cr\'eer un logiciel de modelage de 
formes molles (\textit{metaballs}, m\'etaformes\index{M\'etaforme}).
\\Ceci implique la r\'ealisation d'une interface, que
nous avons appel\'ee Xblob, permettant la mod\'elisation et la 
visualisation des m\'etaformes\index{M\'etaforme}.
\\ Nous allons voir comment va \^etre organis\'e ce logiciel, les techniques
et algorithmes utilis\'es ainsi que les fonctions
offertes par l'interface (modeleur, visualisation, sauvegarde \ldots).
\\Mais voyons d'abord ce qu'est une m\'etaforme.

\section{M\'etaformes : d\'efinition}
\subsection{Des \textit{metaballs} \ldots}
Nous avons parl\'e des formes molles : \textit{metaballs}, m\'etaformes.
\\Expliquons premi\`erement le cas de base, la \textit{metaball} \index{Metaball}:
\\Une m\'etaball est compos\'ee de plusieurs atomes (points) qui
\'emettent ou absorbent de l'\'energie.
Un point P de l'espace re\c{c}oit de l'\'energie de tous les \'emetteurs \index{\'Emetteur}, 
on fait la somme alg\'ebrique de toutes ces \'energies (certaines peuvent
en effet \^etre n\'egatives lorsque la puissance \index{Puissance} 
\footnote{Power} de l'\'emetteur est n\'egative).
\\Le but est de trouver la surface 
\footnote{Ces surfaces sont souvent appel\'ees iso-surfaces ou surfaces implicites : comme
le nom l'indique, la surface de l'objet n'est pas mod\'elis\'ee explicitement, on utilise
des \'equations.}
qui rassemble tous les points o\`u l'\'energie
est \'egale \`a une certaine valeur seuil \index{Seuil} \footnote{Treshold }  que l'on fixe.
\\On obtient alors une ``peau'' autour des \'emetteurs comme le montre
la figure \ref{metaform1} page \pageref{metaform1}.

\begin{figure}[h]
\begin{center}
\includegraphics[scale=0.2]{graphics/metaform1.ps} 
\end{center}
\caption{Exemple de m\'etaforme\index{M\'etaforme} \label{metaform1}}
\end{figure}

\subsection{\ldots aux m\'etaformes}
Les m\'etaformes\index{M\'etaforme} constituent une extension des \textit{metaballs},
puisqu'elles
sont constitu\'ees de plusieurs types d'\'emetteurs en plus du point.
Nous avons choisi de traiter 5 types d'\'emetteurs :
\begin{itemize}
\item{Le point}
\item{Le segment}
\item{Le triangle (facette)}
\item{La ligne bris\'ee}
\item{Le r\'eseau de triangles}
\end{itemize}
La distance d'un point P de l'espace \`a un \'emetteur quelque soit son type,
est la distance la plus courte de P \`a n'importe quel point de l'\'emetteur.
\\Une m\'etaforme\index{M\'etaforme} poss\`ede un \index{Squelette} squelette qui peut donc comporter
5 types d'\'emetteurs diff\'erents,
pour le calcul de la surface tout se passe comme nous l'avons vu pr\'ec\'edemment
pour une \textit{metaball}. Les m\'etaformes permettent de cr\'eer plus
facilement (qu'avec une simple metaball) des objets complexes.

\subsection{Au niveau d'un \'emetteur}
Une m\'etaforme\index{M\'etaforme} poss\`ede un seuil\index{Seuil} d'\'energie qui lui est propre et qui est commun
\`a tous les \'emetteurs qui la constituent.
En revanche, chaque \'emetteur poss\`ede sa
propre fonction d'\'energie et son propre rayon\index{Rayon} \footnote{Radius}
(L'interface permettra \`a volont\'e de changer ces param\`etres).
\\Le rayon d'un \'emetteur sp\'ecifie la limite d'action de celui-ci, ind\'ependamment
des valeurs calcul\'ees \`a l'aide de la fonction d'\'energie :
on consid\`ere qu'un point P situ\'e au del\`a du rayon est hors de la
zone d'influence de l'\'emetteur en question.

\subsubsection{Fonction de distribution de l'\'energie}
Comme nous l'avons vu, l'influence d'un \'emetteur d\'epend en grande partie
de sa fonction de distribution de l'\'energie \footnote{ou fonction de densit\'e}.
Il est possible de d\'efinir cette fonction comme on le souhaite.
Nous allons voir quelques exemples du type de fonctions que l'on peut
utiliser.

\renewcommand{\labelitemiv}{$\blacktriangleright$}
\begin{itemize}
\item{\textit{Blobby} mol\'ecules (voir \cite{Blobby} )
\\La fonction de densit\'e suivante est utilis\'ee autour d'un atome (bas\'e sur le
comportement des atomes d'hydrog\`ene) :
\begin{center}
\( D(P)=be^{-ar^2} \)
o\`u r est la distance du point P au centre de l'atome. 
\end{center}


Pour plusieurs atomes, la densit\'e globale en un point donn\'e est calcul\'ee
en sommant : 
\begin{center}
\[ D(P)=\sum_{i} b_ie^{-a_i{r_i}^2} = T\]
o\`u \(r_i\) est la distance de P au centre du \(i^{eme}\) atome.
\\Le terme exponentiel
est une cloche de Gauss centr\'ee en \(r_i\), avec \(a_i\) comme hauteur et \(b_i\)
comme \'ecart-type.
\\La viscosit\'e d'un mod\`ele peut \^etre contr\^ol\'ee en ajustant
les param\`etres \(a_i\) et \(b_i\). L'iso surface  est
d\'efinie en tout point o\`u la densit\'e est \'egale \`a la valeur seuil\index{Seuil} T.
\end{center}
}

\item{M\'etaformes\index{M\'etaforme} \index{M\'etaforme}
\\Une fonction de distribution de la densit\'e utilis\'ee par la technologie 
des \index{Metaball} metaballs est la suivante :
\[
w(P)=
\left\{ \mbox{
\begin{tabular}{l}
\( d_i(1-3(\frac{r_i}{b_i})^2) \quad \quad \quad 0\leq r_i\leq \frac{b_i}{3}\)\\	
\(\frac {3d_i}{2}(1-\frac{r_i}{b_i})^2 \quad \quad \quad \frac{b_i}{3} \leq r_i \leq b_i \)\\
\( 0 \quad \quad \quad \quad \quad \quad \quad \quad b_i\leq r_i \)
\end{tabular}} \right. \]
o\`u \( r_i \) repr\'esente la distance de P \`a la \( i^{eme} \) m\'etaball, \( d_i \)
est le poids de la \( i^{eme} \)  m\'etaball et \( b_i \) est le rayon\index{Rayon} de la \( i^{eme} \)
m\'etaball.
\label{formule3}


Pour plusieurs \'emetteurs, les contributions \'energ\'etiques de tous les \'emetteurs
sont additionn\'ees, on utilisera aussi la formule dans le cas d'\'emetteurs
qui ne sont pas des points :
\begin{center}
\[ w(P) = \sum_{m_i\ \epsilon\ M} {m_i M} w_i(P) \geq C\]\\
\end{center}
o\`u \( m_i \) est le \( i^{eme} \) \'emetteur, M est un groupe de fusion et C est
une constante arbitraire. Les points de densit\'e sup\'erieure ou \'egale \`a C
forment une r\'egion close dans l'espace. 
}
\end{itemize}


\section{Les m\'etaformes : leurs applications}
\label{applications}

Elles sont particuli\`erement adapt\'ees pour mod\'eliser des objets au rendu\index{rendu} lisse qui se
d\'eforment en se d\'epla\c{c}ant et qui peuvent subir des modifications topologiques.
De tels objets changent de forme \`a cause de ph\'enom\`enes externes, se d\'eforment pendant
une collision avec d'autres objets ou se fondent dans leur environnement.
\\La d\'eformation d'un objet se fait simplement en changeant la relation spaciale
entre primitives. Une surface ferm\'ee et
compacte est toujours garantie bien qu'elle puisse \^etre constitu\'ee de plusieurs parties d\'econnect\'ees.
\\Les surfaces implicites peuvent \^etre utilis\'ees pour diverses applications.
\\Blinn qui a le premier introduit l'utilisation des surfaces implicites
pour le graphisme et l'animation sur ordinateur, utilise les \textit{blobby}
mol\'ecules (voir \cite{Blobby}) pour visualiser
des champs \'energ\'etiques d'\'electrons.
Tatsumi pr\'esente l'utilisation des m\'etaballs pour la mod\'elisation
de certaines cellules dans le foie de morue.
Fujita repr\'esente des \'eclaboussements d'eau gr\^ace aux m\'etaballs.
Max et Wyvill ont rendu\index{rendu}
du corail en utilisant des objets mous (\index{Soft Object}\textit{Soft Objects},
voir \cite{SoftObj}).
Payne et Toga ont mod\'elis\'e un cerveau de rat (voir \cite{Manip}).
Les objets mous ont aussi \'et\'e utilis\'es pour visualiser des \'eclairs (voir \cite{Lightning}).
Au Japon, les m\'etaformes\index{M\'etaforme} sont beaucoup utilis\'ees pour la mod\'elisation et l'animation de formes
complexes comme des parties de l'anatomie humaine (voir \cite{Magic}).\\
Les m\'etaformes\index{M\'etaforme} servent dans le domaine de la simulation sur ordinateur.
On les utilise en physique pour mod\'eliser des d\'etections de collisions, des d\'eformations
ou des fusions d'objets.\\
Dans le domaine de l'animation, les avantages des m\'etaformes sont exploit\'es pour
les d\'eformations d'objets, les \textit{morphings} \dots. Des articles pr\'esentent des
exemples d'animations qui ont beaucoup de succ\`es,
en voici quelques uns :
des lettres descendant un escalier (voir \cite{Soft}), un train traversant une banque
(voir \cite{Train}), un guitariste \'emergeant de bulles de dentifrice (voir \cite{Guitarist}).

\endinput







