qHPR.tex 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. \section{qHPR - Hidden Point Removal}
  2. \index{qHPR, filtrage de points}
  3. \label{subsection:qHPR}
  4. \par
  5. La fonction \textbf{H}idden \textbf{P}oints \textbf{R}emoval tente, comme son nom
  6. l'indique, de filtrer le nuage de points sélectionné de sorte à ne conserver que les
  7. points \emph{visibles} (correspondant à la surface implicite effectivement visible depuis
  8. le point de vue courant\index{point de vue}). Les points considérés comme étant masqués
  9. sont alors cachés. Le résultat dépend donc fortement du point de vue.\\
  10. \begin{figure}[!htb]
  11. \begin{center}
  12. \includegraphics[width=0.5\textwidth]{Partie3_Fonctions/HPRExample.jpg}
  13. \caption{\label{fig:PCVExample}Nuage de point complet (en haut) et nuage de point filtré avec la technique "HPR" (en bas)}
  14. \end{center}
  15. \end{figure}
  16. \par
  17. La notion de visibilité pour les points d'un nuage est relativement complexe à estimer.
  18. En effet il est très peu probable qu'un point soit réellement masqué par
  19. d'autres points dans un nuage, puisque celà nécessiterait un alignement parfait entre paires
  20. de points ou une densité du nuage telle que les points soient quasiment en contact. Cette fonction
  21. approxime donc la notion de visibilité via un calcul d'enveloppe convexe. Elle se base sur l'article
  22. \emph{Direct Visibility of Point Sets} de Katz, Tal et Basri, SIGGRAPH 2007.
  23. \\
  24. \par
  25. Pour calculer les occlusions par HPR, il est nécessaire que le contexte graphique du nuage soit en
  26. projection perspective (cf. section \ref{subsection:centeredPerspective}). Si ce n'est pas le cas,
  27. un message d'erreur prévient l'utilisateur lui demandant d'activer la projection perspective\index{projection!pour visualisation}.
  28. L'utilisateur doit ensuite choisir le niveau d'octree utilisé par la fonction (figure \ref{fig:HPRLevelChoice}).
  29. Le niveau d'octree\index{octree} permet d'accélerer le calcul de l'enveloppe convexe (structure assez lourde)
  30. en réduisant le nombre de points utilisés (par sous-échantillonnage). Plus le niveau est élevé, et plus
  31. le calcul d'occlusion sera fin, mais plus le traitement sera long.
  32. \\
  33. \begin{figure}[!htb]
  34. \begin{center}
  35. \includegraphics[width=0.3\textwidth]{Partie3_Fonctions/HPRLevelChoice}
  36. \caption{\label{fig:HPRLevelChoice}Interface de choix de niveau d'octree}
  37. \end{center}
  38. \end{figure}
  39. \par
  40. Une fois le filtrage effectué, celui-ci n'est valide que pour la position de caméra courante (et des positions très
  41. proches dans une certaine mensure). Il faut relancer l'outil pour mettre à jour le filtrage selon tout nouveau point
  42. de vue.\\
  43. \par
  44. \textcolor[rgb]{1.00,0.00,0.00}{Attention, les points cachés par cette méthodes ne peuvent pas être ré-affichés
  45. via une méthode ad-hoc (pour l'instant). Il faut en attendant utiliser un artifice : activer l'outil de segmentation
  46. manuelle sur le nuage (l'icône des "ciseaux" - section~\ref{subsection:graphicalSegmentation}) qui réinitialise
  47. l'information de visibilité par point) puis quitter ce mode.}