Comment puis-je concentrer des points dans des zones de courbure plus élevée?


11

Comment puis-je répartir les points sur une surface implicite, pour les concentrer plus densément dans les zones de courbure plus élevée?

J'ai envisagé d'ajouter des points au hasard et de rejeter les points non requis en fonction de la courbure, mais j'aimerais savoir s'il existe une meilleure approche donnant une distribution plus uniforme sur des zones de courbure similaire, tout en donnant la densité plus élevée requise en haute régions de courbure.

Je cherche spécifiquement à utiliser ces points pour une triangulation de la surface, et je ne veux pas créer plus de triangles que je n'en ai besoin pour des pièces relativement plates.


Ceci sera appliqué aux formes avec une dérivée connue afin que la courbure en un point donné puisse être calculée.

Cela n'a pas besoin d'être une approche en temps réel.


Êtes-vous à la recherche d'un moyen plus précis d'échantillonner à partir d'une distribution, sans test montecarlo, je veux dire? Si vous ne vous souciez pas beaucoup de l'approche informatique (c'est-à-dire que vous recherchez une approche précise plutôt que l'effort de calcul), je pourrais avoir une solution, mais elle pourrait bien sûr être optimisée.
user8469759

3
Connaissez-vous la fonction analytique ou pouvez-vous seulement l'échantillonner? Connaissez-vous son dérivé analytique?
Julien Guertault

@JulienGuertault Ma modification est-elle claire?
trichoplax

@Lukkio J'aimerais d'abord la précision, puis l'optimisation peut venir plus tard une fois que l'approche fonctionne.
trichoplax

1
Vous voudrez peut-être jeter un œil aux méthodes par éléments finis , qui utilisent également la triangulation (ou plus généralement: les simplifications) et sont souvent confrontées au problème d'avoir besoin d'une densité d'échantillonnage plus élevée dans les régions sélectionnées. Ils sont tenus d'avoir développé des algorithmes pour cela.
Wrzlprmft

Réponses:


11

L'idée que j'essaierais d'appliquer serait la suivante: je fais l'exemple pour la courbe, mais cela devrait être simple pour l'application pour la surface.

γss

cs|c|C(s)

s0,s1,,sn

L'application de cette méthode au cas de la surface doit être simple, car fondamentalement vous avez une fonction de distribution cumulative bidimensionnelle, mais le problème d'échantillonnage est exactement le même.

Juste pour donner quelques détails, il s'agit essentiellement d'un échantillonnage à partir d'une distribution étant donné que la fonction cumulative implique deux étapes:

  1. [0,1]k

  2. C(s)=k

Cette approche est exacte, bien sûr, elle est coûteuse, mais si vous aimez une telle approche, vous pouvez travailler sur l'optimisation.


1
Pas encore de support en latex.
joojaa

Je cherchais quelque chose qui pourrait être utilisé avec une surface implicite même si elle n'a pas de paramétrage. Est-il toujours possible de paramétrer une surface implicite si la dérivée est connue?
trichoplax

Toutes les questions qui pourraient bénéficier de MathJax pour les formules peuvent être ajoutées à cette méta-réponse pour augmenter nos chances d'obtenir MathJax. (Celui-ci a déjà été ajouté.)
trichoplax

Rappelez-vous que ce dont vous avez besoin est la fonction de distribution dérivée de la courbure, vous avez dit que vous pouvez tout dériver (par la façon dont vous avez le type de surface? C'est-à-dire l'équation). Quoi qu'il en soit ... que voulez-vous dire par "dérivé connu"? connaissez-vous une formule explicite du dérivé? ou c'est implicite aussi? (c'est-à-dire décrit au moyen d'une équation différentielle)?
user8469759

1
Soit dit en passant ... si la courbe / surface est algébrique (je veux dire exprimée par un personnel polynomial ou rationnel), il existe des méthodes de calcul basées sur bspline / nurbs qui expliquent comment effectuer le paramétrage de ces courbes. J'ai jeté un coup d'œil ici docs.lib.purdue.edu/cgi/… , une méthode supplémentaire (même avancée) peut être trouvée dans l'un de mes livres préférés sur Nurbs (Le livre NURBS de Tiller).
user8469759

2

Un bon point de départ est l'article classique Utilisation de particules pour échantillonner et contrôler les surfaces implicites , publié dans SIGGRAPH 1994.

Une simulation simple des particules décrite dans l'article Sampling implicit objects with physical-based particules systems ( Computers & Graphics , 1996) for courbes fonctionne aussi pour les surfaces; voir la texture dynamique pour les surfaces implicites pour des exemples.

Pour un exemple plus récent, voir Représentation des formes et des tons pour les surfaces implicites ( Computers & Graphics , 2011).


2

L'approche naïve suivante ne donnera probablement pas des points aussi bien distribués que ceux donnés par Lhf , mais elle devrait être beaucoup plus facile à mettre en œuvre et plus rapide sur le plan des calculs:

xyd(x,y)xyxy

A

  1. xd(x,x)

  2. A

  3. A

    1. xyA
    2. zd(x,y)A
    3. zd(x,y)A

      • si oui, jetez-le.
      • xzyzzA

A

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.