<meta charset="utf-8">

**Échantillonnage rapide de surfaces 3D <em>in the wild</em>**

# Objectifs du stage

Dans de nombreuses applications de traitement et de modélisation de
géométries 3D, la distribution de points équitablement répartis sur
une surface est une étape indispensable.

Dans la littérature, lorsqu'il s'agit d'échantillonner un domaine
plan, cette distribution équitable des points se caractérise par des
propriétés statistiques (uniformité, basse discrépance...) [#Lemieux]
ou spectrales (pas alignements, distance moyenne...)
[#Pilleboue15]. De nombreux articles et outils logiciels existent
maintenant sur ces domaines (*e.g.*
[utk](https://utk-team.github.io/utk/index.html)). Sur des surfaces
3D, l'analyse diffère un peu mais plusieurs auteurs ont proposé des
outils permettant de générer des points et de les analyser ([#Wei11]
[#Ahmed16]...). Ces outils utilisent principalement, soit une
paramétrisation de la surface, soit des propriétés différentielles
locales de cette dernière pour *déformer* un échantillonnage uniforme
(planaire) et ainsi l'adapter à la géométrie.


![](img/bimba2.png)


Ces outils ont un prérequis important qui est que la surface doit être
bien définie et topologiquement correcte (et donc porter une notion de
métrique intrinsèque utilisée notamment pour la distribution équitable
des points).

L'objectif du stage est de s'intéresser à des surfaces complexes
(plusieurs composantes connexes, auto-intersections, jonctions
complexes...), voire une soupe de triangles, avec quand même le
prérequis que ces surfaces correspondent à des approximations d'une
surface sous-jacente topologiquement correcte. Ce type d'artefacts
topologiques apparaît assez souvent en modélisation 3D lorsque l'on
s'intéresse uniquement à l'aspect de la  surface visible externe (pour
du rendu par exemple).



![](img/soup1.png)![](img/soup2.png)


L'objectif est donc de proposer des outils d'échantillonnage sur ce
type de surfaces. De nombreuses options sur possibles (étape de
reconstruction ou de réparation de surfaces, estimation de propriétés
intrinsèques via plongement ambiant, exploitation de la
paramétrisation UV de texture de l'objet 3D si celle-ci est
disponible [#Prada18]...).

Dans un premier temps, on pourra s'intéresser à un échantillonnage
mixte de la géométrie et d'une estimation de la surface sous-jacente
obtenue par une information stable d'intérieur - extérieur [#Jacobson13] [#Barill18].

# Détails

Le stage se déroulera au sein du laboratoire LIRIS (bat. Nautibus).

**Encadrant** : [David Coeurjolly](http://perso.liris.cnrs.fr/david.coeurjolly)

**Compétences requises** : C++, cmake, git, UEs d'image, d'analyse  et
de modélisation géométrique.


**Période** : février-juillet.

# Références

[#Lemieux]: Chrisitiane Lemieux, Monte Carlo and Quasi-Monte Carlo
Sampling, Springer, 2009.

[#Pilleboue15]: Adrien Pilleboue, Gurprit Singh, David Coeurjolly, Michael Kazhdan,
Victor Ostromoukhov. Variance Analysis for Monte Carlo
Integration. ACM Transactions on Graphics (Proceedings of SIGGRAPH),
34(4):14, August 2015.

[#Wei11]: Wei, Li-Yi, and Rui Wang. "Differential domain analysis for
non-uniform sampling. ACM Transactions on Graphics
(TOG). Vol. 30. No. 4. ACM, 2011.

[#Ahmed16]: Ahmed, Abdalla G.M.; Guo, Jianwei; Yan, Dong-Ming; Franceschi,
Jean-Yves; Zhang, Xiaopeng; Deussen, Oliver, A Simple Push-Pull
Algorithm for Blue-Noise Sampling, IEEE Transactions on Visualization
and Computer Graphics, 2016.

[#Prada18]: F. Prada, M. Kazhdan, M. Chuang, and H. Hoppe,
Gradient-Domain Processing within a Texture Atlas (Slides, Source and
Executables), SIGGRAPH (2018Vol. 37, No. 4)

[#Jacobson13]: Jacobson, Alec, Ladislav Kavan, and Olga
Sorkine-Hornung. "Robust inside-outside segmentation using generalized
winding numbers." ACM Transactions on Graphics (TOG) 32.4 (2013): 33.

[#Barill18]: BARILL, G., DICKSON, N. G., SCHMIDT, R., LEVIN, D. I., &
JACOBSON, A. Fast Winding Numbers for Soups and
Clouds. Siggraph, ACM TOG, 2018

<!-- Markdeep: --><style class="fallback">body{visibility:hidden;white-space:pre;font-family:monospace}</style><script src="markdeep.min.js"></script><script src="https://casual-effects.com/markdeep/latest/markdeep.min.js"></script><script>window.alreadyProcessedMarkdeep||(document.body.style.visibility="visible")</script>
