Linuxgraphic.org : Les forums
https://www.linuxgraphic.org/forums/

[Didacticiel][Explications] Surfaces Implicites
https://www.linuxgraphic.org/forums/viewtopic.php?f=28&t=3328
Page 1 sur 1

Auteur:  frayssepat [ 02 Fév 2007, 22:29 ]
Sujet du message:  [Didacticiel][Explications] Surfaces Implicites

:)
bonsoir
depuis la nouvelle version 2.4 , j'ai tenté de faire quelque chose avec
- les surfaces implicites
- les objets implicites
j'ai l'impression de ne pas comprendre ce dont il s'agit
Est-ce qu'une âme charitable (pas forcément François mais bon...si il a un peu de temps) pourrait
m'éclairer un peu ,
je pense que beaucoup d'autres personnes seraient ravies aussi
8)

Titre édité par olivS avant épinglage

Auteur:  fgui [ 03 Fév 2007, 10:53 ]
Sujet du message: 

Bonjour,

Les surfaces implicites sont définies par une équation. On peut encore les appeler isosurfaces quoique ce n'est pas tout à fait ça avec AoI. L'idée est la suivante. Une droite, qui est un objet 1D est définie sur un plan (x,y) par l'équation y = ax + b. Autrement dit, un point (x,y) est situé sur la droite s'il vérifie y -ax = b ou encore (1/b)y- (a/b)x = 1. Nous appelerons f(x,y) la fonction f qui a (x,y) associe f(x,y) = (1/b)y- (a/b)x. On voit que la relation qui nous permet de tracer la droite correspond à f(x,y) = 1.
Pour les surfaces, c'est le même principe sauf qu'on se donne f(x,y,z) = 1. En d'autre termes, si f(x,y,z) est la valeur que prend la fonction f en tout poit de l'espace, la surface implicite définie par f(x,y,z) passe par tout les points pour lesquels f vaut 1. Le tout est d'écrire cette relation f(x,y,z) de manière adequate car certaines marchent bien et d'autre pas du tout.

Pour que ça marche bien, il faut que f décroissent lorsque l'on s'éloigne de l'origine. Pour tracer une sphere de rayon 1, on a le choix entre deux formulations :
x*x + y*y + z*z = 1 (la formule classique, a)
ou
1/(x*x + y*y + z*z) (b)

b est largement préférable à a car sa valeur décroît lorsque x, y et z grandissent.

Pourquoi ?
L'intérêt des surfaces implicites est double.
1) on peut faire des surface tarabiscotées qu'on ne pourrait pas faire autrement, par exemple créer une surface à partir d'un motif turbulence dans un objet implicite procédural.
2) lorsque deux fonctions f et h sont définies, on peut les sommer pour en retirer g = f + h. Concrètement cela signifie que la somme de deux surfaces implicites est une surface implicite. Si f et h sont éloignées l'une de l'autre et qu'elles vont en décroissant, alors lorsque f est prépondérant g~f et lorsque h est prépondérant g~h. Si l'on trace les surfaces, on retrouve les deux surfaces f et g. Si f et g sont très proches, leurs valeurs s'ajoutent et l'on n'obtient plus qu'une seule surface, plus grosse, différence de f et h. f et h se sont fondues l'une dans l'autre : c'est un système de particules !

Pour que les caculs soient efficaces, il est même encore mieux qu'une surface implicite soit égale à 0 au delà d'un rayon de coupure. Comme cela, on peut l'ignorer en dehors du volume défini par le rayon de coupure. C'est très important, car le moteur de rendu est obligé d'évaluer la fonction sur tout le volume de rendu. En conséquence le rendu de ces surfaces est plus lent que celui d'une surface normale.
Par exemple, la bonne fonction f pour une sphère est :
1/(r*r) - 1/(r0*r0) si r < r0
0 si r > r0
Point maths (désolé) : il est important de conserver la continuité de la fonction et de sa dérivée première.

Un fonction implicite peut être écrite directement en écrivant sa formule mathématique (expression implicite) ou en branchant des modules qui vont associer une valeur à un point x,y,z (objet procédural). La première façon est compacte, la deuxième permet d'utiliser les modules motifs et autres facilités amenées par l'éditeur procédural.

Trois données sont utilisées pour définir une surface implicite : la fonction f, la valeur que doit prendre la fonction (cutoff) et le rayon au dela duquel la fonction est nulle (cutoff distance). L'objet implicite n'a pas de rayon de coupure (cutoff distance). Les propriétés de l'objet implicites sont accessibles via Edition -> Propriétés dans l'éditeur. Pour les deux types d'objets, les valeurs X, Y et Z définissent le rapport d'échelle entre la taille de l'objet dans la scène et les valeurs x, y, z utilisées par la fonction implicite. C'est pas évident à décrire sans dessin.

Pour faire une collection d'objets implicites, il faut à l'heure actuelle écrire un script. Je compte écrire un éditeur de collection d'objet implicites notamment pour faire un modeleur metaball (les metaballs sont des cas particuliers d'objets implicites). Mais ce sera après le dépliage de maillage qui avance pas mal, d'ailleurs.

Voilà j'espère que ce n'est pas trop indigeste. J'essairai d'écrire un article sur les surfaces implicites quand le dépliage de maillage se sera un peu décanté...

Auteur:  fgui [ 06 Fév 2007, 21:06 ]
Sujet du message: 

Personne est mort à la lecture de la réponse ? Y'a comme un silence assourdissant. Promis je ferais un article didactique avec des tas d'images pédagogiques quand j'aurais le temps (c'est un peu le problème en ce moment).

Auteur:  olivs [ 06 Fév 2007, 23:50 ]
Sujet du message: 

ben, heu.... :oops: :oops: :oops:

Auteur:  frayssepat [ 07 Fév 2007, 18:24 ]
Sujet du message: 

Excuse-moi François de ne pas avoir répondu plus tôt , mais j'étais débordé comme tout le monde
et je te remecie de ces explications certes un peu techniques mais essentielles.
Je vais essayer moi aussi de trouver un peu de temps pour mettre en oeuvre, ces nouvelles pôssibilités dans AOI
merci encore

8)

Auteur:  frayssepat [ 18 Fév 2007, 18:59 ]
Sujet du message: 

8)

Bonsoir,j'ai trouvé un peu de temps pour faire un petit didactitiel
sur le sujet sur www.freegraphic.fr

Objet implicite

Cordialement

8)

Auteur:  olivs [ 19 Fév 2007, 09:26 ]
Sujet du message: 

Allez hop, je me suis dit qu'avec les efforts fournis par fgui pour les explications des surfaces implicites et ceux de frayssepat pour la création d'un didacticiel les mettant en oeuvre, je me suis dit que cela méritait un petit épinglage.

PS pour frayssepat: là où tu vois des particules d'or, personnellement, je vois des nuages en 3D ;-)

Amicalement,

Page 1 sur 1 Heures au format UTC + 1 heure [ Heure d’été ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/